C'è un modo per sbarazzarsi degli angoli arrotondati di UISegmentedControl o è il comportamento predefinito?UISegmentedControl senza angolo arrotondato?
risposta
No, non esiste un'API che ti dia il controllo sul layout dei segmenti.
Probabilmente si potrebbe provare a esaminare le viewview di UISegmentedControl e provare a modificarle in base alle proprie esigenze. Ma per esperienza personale non lo consiglierei. Se Apple cambierà il loro ordine in futuro, probabilmente l'app si bloccherà. La cosa più semplice da fare è creare UIButtons personalizzati che si comportano come pulsanti di attivazione e controllo come un UISegmentedControls (per i pulsanti di attivazione vedere How to use a UIButton as a toggle switch).
Se si desidera un aspetto diverso, è possibile creare una sottoclasse e creare il proprio disegno in -drawRect:
. Vedi lo Quartz 2D Programming Guide come riferimento sul disegno con Quartz/Core Graphics.
C'è qualcosa veramente facile che si può fare per sbarazzarsi della spazzatura arrotondata sul UISegmentedControl ... cambiare lo stile di "7". Non sto scherzando. Ho appena capito questo:
// Magic number ... (it's cheating, but it works)
mySegmentedBar.segmentedControlStyle = 7;
Questo è lo stesso stile di controllo che usano in bar campo di applicazione della UISearchBar, in questo modo:
Ma se qualcuno vuole solo la barra campo di applicazione, senza la di ricerca, sono di solito bloccato con UISegmentedControl spazzatura come questo (con angoli arrotondati):
O peggio, questo ...
Per fortuna, passando al bar in stile "7", si ottiene l'esatto aspetto della barra di arresto, senza tutta la sottoclasse e drawRect aggiustamenti:
Dopo un sacco di tentativi che ho ricevuto sotto soluzione che funziona bene senza alcuna immagine di sfondo o subclassing:
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];
Aggiungendo un bordo di larghezza ragionevole è possibile ottenere l'aspetto quadrato:
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. Errore angolo arrotondato Java
- 2. UITextField - Numero angolo arrotondato
- 3. WPF MediaElement con angolo arrotondato
- 4. CSS3: trasparente arrotondato angolo Problema
- 5. Come creare una forma con angolo superiore arrotondato a sinistra arrotondato e angolo arrotondato a sinistra in basso?
- 6. WPF angolo arrotondato casella di testo
- 7. iOS arrotondato angolo UIImmagine con bordo
- 8. Creazione di una vista angolo arrotondato
- 9. iOS UITableViewCell cell.imageVisualizzazione impostazione angolo arrotondato
- 10. svg css angolo arrotondato non funziona
- 11. jQuery codice angolo arrotondato per IE8 in modalità standard?
- 12. Java - Pannello angolo arrotondato con compositing in paintComponent
- 13. Come creare un NSImageView con un angolo arrotondato?
- 14. Android TextView angolo arrotondato con perfetta rotonda nell'angolo
- 15. UILabel con angolo arrotondato (Xcode 4.5 e iOS 6)
- 16. Come utilizzare l'etichetta angolo arrotondato in iphone, UILabel Round Corners
- 17. Angolo superiore sinistro e destro arrotondato in Javafx/CSS
- 18. Come disegnare un singolo angolo arrotondato del mio UIView.
- 19. Uebutton Rect arrotondato senza bordo
- 20. Come contorno di un angolo arrotondato di CALayer come tracciato di ritaglio
- 21. Style lista non ordinata per visualizzare gli elementi della lista in scatola angolo arrotondato
- 22. UIView con angolo arrotondato e bordo ha il colore del bordo sbagliato
- 23. Crea un angolo personalizzato con un rettangolo arrotondato in alto a sinistra?
- 24. UISegmentedControl tintColor
- 25. Creare un JFrame/ContentPane arrotondato
- 26. Bordo arrotondato trasparente in Chrome
- 27. Come rilevare angolo con specifico gradi angolo
- 28. Tavolo personalizzato iPhone Tavolo angolare arrotondato
- 29. UISegmentedControl nell'app Mail
- 30. UISegmentedControl delegate/Touch Events
È come per magia. – Joel
Questa è considerata API privata? – jjxtra
@GregCombs è passato un po 'di tempo, vorrei una risposta su questo^per favore, ogni volta che hai il tempo – GangstaGraham