Est-il possible d'augmenter la taille de l'indicateur en UIPageViewController
?Augmenter la taille de l'indicateur dans UIPageViewController en utilisant swift 3
J'ai ceci:
Et mon exigence est la suivante:
Est-il possible d'augmenter la taille de l'indicateur en UIPageViewController
?Augmenter la taille de l'indicateur dans UIPageViewController en utilisant swift 3
J'ai ceci:
Et mon exigence est la suivante:
La mise à l'échelle de la commande de mise à l'échelle mettra à l'échelle les points, mais aussi l'espacement entre eux.
pageControl.transform = CGAffineTransform(scaleX: 2, y: 2)
Si vous souhaitez conserver le même espacement entre les points, vous aurez besoin de transformer les points individuellement:
pageControl.subviews.forEach {
$0.transform = CGAffineTransform(scaleX: 2, y: 2)
}
Cependant, si vous faites cela en viewDidLoad
, la transformation a été remis à zéro par le temps de la vue apparaît, vous devez donc faire en viewDidLayoutSubviews
...
override func viewDidLayoutSubviews() {
pageControl.subviews.forEach {
$0.transform = CGAffineTransform(scaleX: 2, y: 2)
}
}
Vous pouvez utiliser un UIPageControl
et l'échelle 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 avec cela est que l'espace entre vos points augmentera aussi. Si vous voulez avoir une conception précise avec votre point, vous devez utiliser des contrôles à 3 parties: https://www.cocoacontrols.com/
Je l'ai mentionné dans la question que je me sers UIPageViewController . –
@AnuragSharma Je sais, UIPageControl est utilisé avec UIPageViewController quand on veut plus de contrôle sur les points. Ce n'est pas incompatible. Il n'y a aucun moyen de faire ce que vous voulez seulement avec UIPageViewController – Makaille
Vous avez absolument raison, mais nous pouvons obtenir la référence de "UIPageControl" dans "viewDidLayoutSubviews()" et modifier selon nos besoins. Nous pouvons changer l'espace entre les points jeter un oeil à @Ashley Mills répondre –
Tout d'abord, créez un objet uiPageControl à l'intérieur à l'intérieur viewDidLoad(), puis réglez sa position y selon vos besoins puis appliquer l'échelle désirée à l'aide CAAffiniteTransform comme 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
C'est une bonne réponse, Mais comment puis-je obtenir la référence de UIPageControl dans UIPageViewController. Comme si j'imprime les sous-vues de UIPageViewController je reçois le ScrollView seulement! Ou dois-je faire glisser un UIPageControl dans le storyboard? –
Avez-vous déjà résolu ceci? J'ai la même confusion sur la façon de référencer le pageControl. Est-ce que je fais ça en quelque sorte dans le UIPageViewController? Tout ce que je veux, c'est de plus gros points, et la mise à l'échelle de la distance entre eux est bien aussi. –