我正在实现一个简单的画廊视图控制器,应用程序会显示一组全屏图片,用户可以滚动浏览。我正在使用UIPageViewController,我认为只要我实现正确的数据源函数,它应该自动显示页面控制指示器。但是我仍然看不到任何指示器。
在我的主要GalleryViewController
类中:
class GalleryViewController: UIViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate {
var pageController: UIPageViewController?
var pageContent = NSArray()
override func viewDidLoad() {
super.viewDidLoad()
.... some code to load images into the pageContent array ....
pageController = UIPageViewController(transitionStyle:.Scroll, navigationOrientation:.Horizontal,options:nil)
pageController?.delegate = self
pageController?.dataSource = self
... some more standard code to add the page controller to self.view etc.
var pageControl = UIPageControl.appearance()
pageControl.pageIndicatorTintColor = UIColor.lightGray()
pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
pageControl.backgroundColor = UIColor.blackColor()
pageController!.didMoveToParentViewController(self)
}
func viewControllerAtIndex(index:Int) -> ContentViewController? {
....
}
我已经实现了两个必需的协议方法:viewControllerBeforeViewController和viewControllerAfterController,以及两个用于分页的必需方法presentationCountForPagesViewController和presentationIndexForPageViewController。
我的ContentViewController
有一个填满整个屏幕的UIImageView
。然而,即使我将其缩小到屏幕底部,仍然无法看到任何页面指示灯。
我错过了什么吗?如果我没有提供足够的信息,请告诉我。我一直在尝试重新编写我五年前使用Objective-C编写的旧应用程序 - 完全使用Swift适用于iOS8和Xcode等环境已经发生了很多变化,这让人感到困惑。
谢谢!
transitionStyle: .scroll, navigationOrientation: .horizontal
。 - Herbal7ea