Ändern Sie den text Farbe der UISegmentedControl
Iam neu objective c,müssen ändern Sie die text-Farbe des ausgewählten Segments in UIsegmentControl.
Verwendet folgenden code.
[[UIsegmentControl.subviews objectAtIndex:segment.selectedSegmentIndex] setTintColor:[UIColor redColor]];
es ändert segment Farbe.Helft mir bitte..
- Aktualisierte Antwort für swift4 mit der Erweiterung, stackoverflow.com/questions/9029760/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Möglichkeit, die benutzerdefinierten Farbe des ausgewählten Segments Titel in
UISegmentedControl
. DieUIControlState
imforState:
verwendet, um die Attribute des Segments text für den normalen und selektierten Zustand.Aus Dem Code :
Versuchen, Diesen Code:
Ersetzen Sie die segmnt_cntrl mit Ihrem Objekt der Segment-Cotrol. Versuchen Sie dies , Es könnte Ihnen dabei hilft, Ihre über alle Ziel.
Dank
UIControlState
imforState:
können verwendet werden, um die Attribute für normale und markierte segment text.Wenn Sie müssen, ändern Sie die Textfarbe der markierten segment in iOS 7, hier ist eine Lösung (hat mich eine Weile zu finden, aber Dank diesem Beitrag):
UIControlStateSelected
mitUIControlStateNormal
(oderUIControlStateHighlighted
wenn Sie benötigen).Mit Referenzen zu @ich-- Antwort
Aktualisiert Swift 4.1
Swift 3.1
Für Frühere Swift-Version:
UISegmentedControl.appearance().setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.white], for: .selected)
Gibt es keine standard-API, um die text-Attribute für ein einzelnes segment in einem UISegmentedControl. Sie können die unrecommended Ansatz der Graben in der view-Hierarchie der segmentierten Kontrolle finden Sie die gewünschten UILabel (falls vorhanden) und legen Sie das Etikett Attribute. Ein besserer Ansatz ist zu finden (oder schreiben) ein benutzerdefiniertes Steuerelement, das emuliert eine UISegmentedControl und können für ein einzelnes segment angepasst werden, in der Weise, die Sie benötigen.
Edit:
Eigentlich war ich bei dieser Suche von dem falschen Standpunkt aus. Mein Antwort war basiert auf versuchen, zum festlegen der Attribute für ein bestimmtes segment index. Aber in der Tat kann dies erreicht werden, indem die text-Attribute für die
UIControlStateSelected
Zustand. Sorry für die Verwirrung.Zusätzlich zu @Babl Prabhakar Antwort
Swift 5:
UISegmentedControl.appearance().setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.white], for: .selected)
Aktualisiert @Babul Prabhakar Antwort für Swift 3, weil etwa die Hälfte ein Dutzend kleine Dinge haben sich geändert: