- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有三个 Controller ,将通过 UIPageViewController 显示。它工作得很好,但 UIPageControl 在转换过程中会闪烁。我在这里错过/没有看到什么?
我将向您展示我的 UIPageViewController 实现、ViewController 实现以及我用来推送它的代码。感谢您的宝贵时间!
我创建 UIPageViewController 及其包含的 Controller 的代码:
let blueVC = EmptyViewController()
blueVC.view.backgroundColor = UIColor.blue
blueVC.title = "blauer Controller"
let greenVC = EmptyViewController()
greenVC.view.backgroundColor = UIColor.green
greenVC.title = "grüner Controller"
let redVC = EmptyViewController()
redVC.view.backgroundColor = UIColor.red
redVC.title = "roter Controller"
let subViewControllers = [blueVC, greenVC, redVC]
let pageViewController = DemoPageViewController(withControllers: subViewControllers)
self.navigationController?.pushViewController(pageViewController, animated: true)
PageViewController:
import UIKit
class DemoPageViewController: UIPageViewController {
private var myViewControllers = [UIViewController]()
public init(withControllers controllers: [UIViewController]) {
self.myViewControllers = controllers
super.init(transitionStyle: .scroll, navigationOrientation: .horizontal, options: nil)
self.setViewControllers([controllers.first!], direction: .forward, animated: true, completion: nil)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.view.backgroundColor = UIColor.clear
}
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
// Do any additional setup after loading the view.
}
}
extension DemoPageViewController: UIPageViewControllerDataSource {
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = self.myViewControllers.index(of: viewController) else {
return nil
}
let previousIndex = viewControllerIndex - 1
guard previousIndex >= 0 else {
return self.myViewControllers.last
}
guard self.myViewControllers.count > previousIndex else {
return nil
}
return self.myViewControllers[previousIndex]
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
guard let viewControllerIndex = self.myViewControllers.index(of: viewController) else {
return nil
}
let nextIndex = viewControllerIndex + 1
guard nextIndex < self.myViewControllers.count else {
return self.myViewControllers.first
}
guard self.myViewControllers.count > nextIndex else {
return nil
}
return self.myViewControllers[nextIndex]
}
func presentationCount(for pageViewController: UIPageViewController) -> Int {
return self.myViewControllers.count
}
func presentationIndex(for pageViewController: UIPageViewController) -> Int {
return 0
}
}
EmptyViewControllers 的附加实现:
import Foundation
import PureLayout
import UIKit
class EmptyViewController: UIViewController {
var didSetupConstraints = false
override func loadView() {
self.view = UIView()
self.view.backgroundColor = UIColor.white
self.view.setNeedsUpdateConstraints() // bootstrap Auto Layout
}
override func viewDidLoad() {
super.viewDidLoad()
print("\(#function) in \(#file)")
// Do any additional setup after loading the view, typically from a nib.
}
override func updateViewConstraints() {
// Check a flag didSetupConstraints before creating constraints, because this method may be called multiple times, and we
// only want to create these constraints once. Without this check, the same constraints could be added multiple times,
// which can hurt performance and cause other issues. See Demo 7 (Animation) for an example of code that runs every time.
if !self.didSetupConstraints {
// set Constraints here
self.didSetupConstraints = true
}
super.updateViewConstraints()
}
}
最佳答案
我刚刚找到原因了。闪烁是由背景中的 ViewController 引起的,因为背景是清晰的,所以可以看到。将背景设置为黑色确实有帮助。
关于swift - UIPageViewControllers UIPageControl 在转换过程中出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51538581/
我使用本教程使用 UIPageController 创建了一个应用程序:http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/
我一直在使用 UIPageController 在不同的 Controller 之间导航。现在我想在底部添加这些点,这样用户就可以看到他在哪个 Controller 上。这是通过 UIPageCont
我是 ios 编程的新手。我试图在 stackoverflow 上搜索另一个示例和更多问题,但这不是我的目标。我想在 UIPageControl 的索引 0 处设置一个类似于 iPhone 搜索主
任何人都知道如何创建垂直 UIPageControl?我有一个启用了分页的 UIScrollView,我想让 UIPageControl 坐在侧面并垂直显示而不是水平显示。 先感谢您... 最佳答案
我想要带有圆圈的页面控件如何执行此操作我现在使用页面控件,但它有点而不是圆圈 最佳答案 您必须创建自定义页面滚动。为此,您应该引用 this question 。希望你能明白。 还有一些有用的链接:
嘿伙计们,我正在使用带有 ScrollView 的 UIPagecontrol。它效果很好,但有一种情况是白色没有突出显示。它发生在我们从 ScrollView 转到另一个 View 然后返回并重新加
我想隐藏UIPageControl的栏,因为我想实现带有滑动手势功能的分页,所以我不需要显示点栏。如果我设置 hidden=YES ,将会保留一个 UIPageControl 大小的黑色 block
我无法在 iOS 14 中设置页面控制点的边框颜色。以下代码适用于 iOS < 14,但不适用于 iOS 14: for (int i = 0; i < [self.subViews count];
pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(153,356,38,36) ]; pageControl.userInte
我有一个 PageViewController我想更改 UIPageControl位置(从屏幕底部到顶部)。 那是我的代码: UIPageControl *pageControl = [UIPageC
我有一个 UIPageViewController,其中放置了一个 UIPageControl。当我滚动时,这似乎在大多数情况下都有效,但有时它不会更改当前选定的页面。什么会触发这种行为? func
我有一个关于 UIPageControl 的问题。我有一个 UIScrollView 和一个 UIPageControl。当我在 UIScrollView 前面添加 UIPageControl 时,状
我使用默认的UIPageControl。 UIPageViewController 以编程方式创建。 dataSource 和 delegate 方法也已正确配置。 我正在尝试实现与 iOS 主页相同
我正在尝试使用页面控制功能和 UIScrollView 在我的 IOS 应用程序上显示一组图像,我看过一些教程,但它们都展示了如何更改颜色、如何加载一些图像以及使用页面控件来浏览它们? 最佳答案 -(
我正在使用 UIPageControl 和 UISwipeGestureRecognizer 在 View Controller 之间切换。使用滑动更改页面。 我还需要在其中一个 View Contr
我发现自定义UIPageControl页面图像非常容易(我已经检查过iOS7/8): [self setValue:[UIImage imageNamed:@"my_icon_for_off_stat
我需要改进 EAIntroView 屏幕在启用画外音时从我的应用程序的转换。为此,我考虑使用变换来增加触摸区域: _pageControl.transform = CGAffineTransf
我有一个包含多个表格的 UIScrollView 和一个跟踪用户当前正在查看哪个页面的 UIPageControl。它工作正常,直到我开始在 tableview 上向上滚动,此时 UIPageCont
我正在使用 UIPageController 来实现基于页面的导航应用程序。我想仅在页面边缘启用滑动手势,并防止在内部内容 View 中启用滑动手势。该页面的边距为 20 像素: contentVie
我想知道如何替换状态栏或至少将页面控件放在它上面?每次有人寻呼时,这将是一个临时放置几秒钟,然后它就会消失。我以前在应用程序中见过它。 最佳答案 我认为您无法到达状态栏上方,因为它不属于您的根窗口。
我是一名优秀的程序员,十分优秀!