web-dev-qa-db-fra.com

Augmenter la taille de l'indicateur dans UIPageViewControler UIPageControl

Est-il possible d'augmenter la taille de l'indicateur en UIPageViewController?

J'ai ceci:

 

Et mon exigence est la suivante:

 

17
Anurag Sharma

La mise à l'échelle du contrôle de page permettra de redimensionner les points, mais également d'espacer les espaces entre eux. 

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

Si vous souhaitez conserver le même espacement entre les points, vous devez transformer les points individuellement:

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

Toutefois, si vous faites cela dans viewDidLoad, la transformation a été réinitialisée au moment où la vue apparaît. Vous devez donc le faire dans viewDidLayoutSubviews

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

 enter image description here

48
Ashley Mills

Vous pouvez utiliser une UIPageControl et la redimensionner comme ceci:

@IBOutlet weak var pageControl: UIPageControl!

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

Le problème, c'est que votre espace entre vos points augmentera également. Si vous voulez avoir une conception précise avec votre point, vous devez utiliser des contrôles à trois parties: https://www.cocoacontrols.com/

3
Makaille

Pour que Swift 2.0 augmente ou diminue la taille de pageControl Indicator

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

OR

self.pageControl.transform = CGAffineTransformMakeScale(1.3, 1.3)
2
Hardik Thakkar

Tout d'abord, créez un objet uiPageControl à l'intérieur de viewDidLoad (), puis définissez sa position y en fonction de vos besoins, puis appliquez l'échelle requise à l'aide de CAAffiniteTransform comme indiqué ci-dessous: 

        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
0
Frankenxtein