web-dev-qa-db-fra.com

Réduisez la taille des points ou le remplissage pour s’adapter à tous les indicateurs de page à l’écran avec UIPageControl

J'ai une UIPageControl qui a 22 pages, donc des points indicateurs de 22 pages. En mode paysage sur iPhone, ils sont tous visibles avec beaucoup d'espace à gauche et à droite, mais en mode portrait, l'espace horizontal est insuffisant pour afficher tous les points (au moins sur les iPhone 4 et 5). les deux extérieurs sont coupés en deux.

Je cherche un moyen de réduire la taille des points ou de réduire la marge de remplissage entre les points pour que tous les points tiennent sur l'écran en mode portrait. Comment cela peut-il être accompli?

enter image description here

15
Jordan H

Si vous avez autant de points, je considérerais sérieusement un contrôle différent. Mais si vous voulez vous en tenir à UIPageControl, je voudrais simplement le réduire pour s’adapter à l’écran, avec quelque chose comme:

pageControl.transform = CGAffineTransformMakeScale(0.7, 0.7);

Cela le réduit à 70% de sa taille initiale - je vous laisse le soin de déterminer la meilleure échelle pour la taille de votre écran/le nombre de pages.

49
pbasdf

Code de version Swift 3: basé sur la réponse pbasdf.

pageControl.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)
5
mriaz0011

Vous ne devriez vraiment pas utiliser un UIPageControl pour quelque chose qui a 22 pages. Pourquoi ne pas essayer quelque chose comme une étiquette qui renvoie plutôt un nombre. Vous donnera une apparence beaucoup plus propre à votre application. 

Bien que si vous voulez VRAIMENT utiliser le contrôle de page, la réponse de pbasdf est parfaite. pageControl.transform = CGAffineTransformMakeScale (0.8, 0.8)  devrait faire l'affaire. 

2
Clinton D'Souza