Увеличение размера индикатора в Uipageviewcontroller UIPageControl

можно ли увеличить размер индикатора в UIPageViewController?

У меня есть это:

и мое требование это:

5 ответов


масштабирование управление страница данные точки, но также будет расширять расстояние между ними.

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

если вы хотите сохранить одинаковое расстояние между точками, вам нужно будет преобразовать точки по отдельности:

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

однако, если вы сделаете это в viewDidLoad, преобразование было сброшено к моменту появления представления, поэтому вы должны сделать это в viewDidLayoutSubviews...

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

enter image description here


можно использовать UIPageControl и такой :

@IBOutlet weak var pageControl: UIPageControl!

 override func viewDidLoad() {
    super.viewDidLoad()
    pageControl.transform = CGAffineTransform(scaleX: 2, y: 2); //set value here
}

проблема в том, что пространство между вашими точками также будет увеличиваться. Если вы хотите иметь точный дизайн с вашей точкой, вы должны использовать элементы управления 3party:https://www.cocoacontrols.com/


для swift 2.0 для увеличения или уменьшения размера индикатора pageControl

self.pageControl.transform = CGAffineTransformMakeScale(0.8, 0.8)

или

self.pageControl.transform = CGAffineTransformMakeScale(1.3, 1.3)

во-первых, создайте объект uiPageControl внутри viewDidLoad (), а затем установите его положение y в соответствии с вашим требованием, затем примените требуемый масштаб с помощью CAAffiniteTransform, как показано ниже:

        var pageControl = UIPageControl()
        pageControl.pageIndicatorTintColor = UIColor.gray
        pageControl.currentPageIndicatorTintColor = UIColor.yellow

        pageControl.transform = CGAffineTransform(scaleX: 1.3, y: 1.3) // set dot scale of pageControl

        pageControl.backgroundColor = UIColor.darkGray
        pageControl.numberOfPages = 3
        pageControl.center = self.view.center 
        self.view.addSubview(pageControl) // add pageControl to view

        pageControl.layer.position.y = self.view.frame.height - 100; // y position of the pageControl

добавить расширение к контроллеру страницы

extension UIPageControl {
    func customPageControl(dotWidth: CGFloat) {
        for (pageIndex, dotView) in self.subviews.enumerated() {
            dotView.frame.size = CGSize.init(width: dotWidth, height: dotWidth)
        }
    }
}