如何改变UIPageViewController

问题描述:

的页面大小指示我创建UIPageViewController使用教程从这个blog如何改变UIPageViewController

现在我需要改变页面指示器框架的大小。 我已经试图改变一个控制器,但没有成功

这里的帧大小的代码我使用

private func createPageViewController() { 
    let mainStoryboard = UIStoryboard(name: "Main", bundle: NSBundle.mainBundle()) 
    let pageController = mainStoryboard.instantiateViewControllerWithIdentifier("ImagesPagerViewController") as! UIPageViewController 
    pageController.dataSource = self 


    if contentImages.count > 0 { 
     let firstController = getItemController(0)! 
     let startingViewControllers: NSArray = [firstController] 
     pageController.setViewControllers(startingViewControllers as? [UIViewController], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil) 
    } 


    pageViewController = pageController 
    addChildViewController(pageViewController!) 
    self.view.addSubview(pageViewController!.view) 
    pageViewController!.didMoveToParentViewController(self) 
} 

//Setting appearance globally 
private func setupPageControl() { 
    let appearance = UIPageControl.appearance() 
    appearance.pageIndicatorTintColor = UIColor.grayColor() 
    appearance.currentPageIndicatorTintColor = UIColor.whiteColor() 
    appearance.backgroundColor = UIColor.redColor() 
} 

是否有解决方案这样做呢?

+0

你有没有让你解决? –

+0

编程方式,我没有找到解决方案,使用Alessandro Ornano的答案 – korgx9

您不能更改嵌入UIPageControl的位置,但您可以创建自己的UIPageControl并获得对它的完全控制,请注意,在以下示例中使用SnapKit来设置约束,您可以将其替换为首选技术(例如在约束值是伪代码)

let pageControl = UIPageControl() 
parentView.addSubview(pageControl) 
pageControl.snp_makeConstraints { (make) -> Void in 
     make.width.equalTo(yourdesiredWidth) 
     make.height.equalTo(yourdesiredHeight) 
     make.bottom.equalTo(yourBottom) 
     make.centerX.equalTo(yourcenter) 
    } 
    pageControl.numberOfPages = N 
    pageControl.currentPage = 0 

在页面的底部存在github link project

你可以简单的去到故事板和自定义您UIPageControl,你需要:

enter image description here

并更改框架(和约束..):

enter image description here