UISegmentedControl sans coins arrondis?
Est-il un moyen de se débarrasser de UISegmentedControl de coins arrondis ou c'est le comportement par défaut?
Vous devez vous connecter pour publier un commentaire.
Est-il un moyen de se débarrasser de UISegmentedControl de coins arrondis ou c'est le comportement par défaut?
Vous devez vous connecter pour publier un commentaire.
Non, il n'y a pas d'API qui vous permet de contrôler la mise en page des segments.
Vous pourriez probablement essayez de regarder dans le UISegmentedControl de vue.les sous-vues et essayer de les changer en fonction de vos besoins. Mais, par expérience personnelle, je n'aurais pas des conseils. Si Apple a changé leur ordre dans l'avenir de votre application sera probablement planter. La meilleure chose à faire est de créer des UIButtons qui se comportent comme bascule les boutons et les contrôler comme un UISegmentedControls (pour basculer les boutons-voir Comment utiliser un UIButton comme un interrupteur à bascule).
Il y a quelque chose vraiment facile que vous pouvez faire pour se débarrasser de l'arrondi indésirable sur la UISegmentedControl ... changer le style de "7". Je ne plaisante pas. J'ai juste compris cela:
C'est le même style de contrôle qu'ils utilisent dans le UISearchBar de la barre de portée, comme ceci:
Mais si quelqu'un veut seulement la barre de portée, sans la recherche, ils sont habituellement coincé avec UISegmentedControl indésirable comme ceci (avec les coins arrondis):
Ou pour le pire, cette...
Heureusement, le passage à la barre de "7", nous obtenons le regard exact de la barre d'arrêt, sans que tous les sous-classement et drawRect hackery:
Si vous voulais un look différent, vous pouvez simplement sous-classe et de faire votre propre dessin en
-drawRect:
. Voir la Quartz 2D Guide de Programmation de référence sur le dessin avec Quartz/Graphiques de Base.Par l'ajout d'une frontière avec la largeur raisonnable, vous pouvez obtenir le carré de la regarder:
Après beaucoup d'essais, je suis en dessous de solution qui fonctionne très bien sans aucune image de fond ou de sous-classement:
Si quelqu'un est intéressé, voici la simple extension de Swift 4 (iOS 11). Assurez-vous de régler la teinte de la couleur avant d'appeler cette méthode. Si vous changez la couleur de teinte après, assurez-vous d'appeler cette méthode à nouveau :
}