Search code examples
swiftuipageviewcontrolleruipagecontrol

Increase the size of the indicator in UIPageViewController's UIPageControl


Is it possible to Increase the size of the indicator in UIPageViewController?

I have this:

And my requirement is this:


Solution

  • Scaling the page control will scale the dots, but will also scale the spacing in between them.

    pageControl.transform = CGAffineTransform(scaleX: 2, y: 2)
    

    If you want to keep the same spacing between dots, you'll need to transform the dots individually:

    pageControl.subviews.forEach {
        $0.transform = CGAffineTransform(scaleX: 2, y: 2)
    }
    

    However, if you do this in viewDidLoad, the transform has been reset by the time the view appears, so you should do this in viewDidLayoutSubviews

    override func viewDidLayoutSubviews() {
        pageControl.subviews.forEach {
            $0.transform = CGAffineTransform(scaleX: 2, y: 2)
        }
    }
    

    enter image description here