Y at-il un moyen de se débarrasser des coins arrondis de UISegmentedControl ou c'est le comportement par défaut?UISegmentedControl sans arrondi?
Répondre
Non, aucune API ne vous permet de contrôler la disposition des segments.
Vous pourriez probablement essayer d'examiner les view.sub de UISegmentedControl et essayer de les changer en fonction de vos besoins. Mais par expérience personnelle, je ne conseillerais pas cela. Si Apple a changé sa commande à l'avenir, votre application va probablement tomber en panne. La chose la plus simple à faire est de créer des UIButtons personnalisés qui se comportent comme des boutons bascules et de les contrôler comme un UISegmentedControls (pour les boutons bascules, voir How to use a UIButton as a toggle switch).
Si vous voulez un look différent, vous pouvez juste le sous-classer et faire votre propre dessin en -drawRect:
. Voir le Quartz 2D Programming Guide pour référence sur le dessin avec Quartz/Core Graphics.
Il y a quelque chose vraiment facile que vous pouvez faire pour vous débarrasser de la jonque arrondie sur le UISegmentedControl ... changer le style de « 7 ». Je ne plaisante pas. Je viens de comprendre ceci:
// Magic number ... (it's cheating, but it works)
mySegmentedBar.segmentedControlStyle = 7;
C'est le même style de contrôle qu'ils utilisent dans la barre de portée du UISearchBar, comme ceci:
Mais si quelqu'un veut que la barre de portée, sans recherche, ils sont généralement coincé avec l'ordure UISegmentedControl comme celui-ci (avec des coins arrondis):
Ou pire, ce ...
Heureusement, en passant à la barre de style « 7 », nous obtenons l'apparence exacte de la barre d'arrêt, sans que tous les sous-classement et drawRect carriole:
Après beaucoup d'essais, j'ai obtenu en dessous de solution qui fonctionne très bien sans image de fond ou sous-classement:
mySegmentedControl.tintColor = [UIColor clearColor]; //Clear all border
//Draw your own border
mySegmentedControl.layer.borderColor = [UIColor blackColor].CGColor;
mySegmentedControl.layer.borderWidth = 1.0;
//Set tint color for selected subview
UIColor *tintcolor=[UIColor redColor];
int subViewIndex = 0; //index which is selected
[[_segmentControl.subviews objectAtIndex:subViewIndex] setTintColor:tintcolor];
En ajoutant une bordure avec une largeur raisonnable, vous pouvez obtenir le look carré:
self.segmentedControl.tintColor = [UIColor brownColor];
self.segmentedControl.layer.cornerRadius = 0.0;
self.segmentedControl.layer.borderColor = [UIColor brownColor].CGColor;
self.segmentedControl.layer.backgroundColor = [UIColor colorWithWhite:1 alpha:0.75].CGColor;
self.segmentedControl.layer.borderWidth = 1.5f;
self.segmentedControl.layer.masksToBounds = YES;
- 1. coin arrondi fallback sans javascript
- 2. Personnalisation UISegmentedControl
- 3. coutume UISegmentedControl
- 4. UISegmentedControl EXC_BAD_ACCESS
- 5. Flèche UIPopoverController sur UISegmentedControl
- 6. Conversion d'un flottant en une chaîne sans arrondi
- 7. arrondi à la meilleure unité sans perte de précision
- 8. Changement textColor dans UISegmentedcontrol
- 9. badgeValue dans UISegmentedControl
- 10. Deux lignes UISegmentedControl
- 11. UISegmentedControl, UIToolbar et UINavigationItem
- 12. UISegmentedControl delegate/Touch Events
- 13. Weird UISegmentedControl Problème!
- 14. UISegmentedControl effet Glow
- 15. UISegmentedControl Best Practice
- 16. UISegmentedControl avec UITableView NSRangeException
- 17. UISegmentedControl dans l'application Mail
- 18. Arrondi UIBarButtonItems
- 19. Modification des vues de UISegmentedControl
- 20. UISegmentedControl comme dans l'application AppStore
- 21. UISegmentedControl image d'arrière-plan personnalisée
- 22. UISegmentedControl rend UITableView lent/lag?
- 23. Couleur UISegmentedControl dans un UIToolbar
- 24. Personnalisation des couleurs d'un UISegmentedControl
- 25. Zone de texte riche arrondi sélection de coin arrondi
- 26. Arrondi dans Ada
- 27. UIView arrondi avec ombre?
- 28. Flotteur arrondi en Ruby
- 29. Arrondi des objets DateHeure
- 30. Arrondi double - 0,5 - sprintf
C'est comme de la magie. – Joel
Est-ce considéré comme une API privée? – jjxtra
@GregCombs cela fait un moment, voudrais une réponse à ce sujet^s'il vous plaît, chaque fois que vous avez le temps – GangstaGraham