iphone ios7 segmentiert UISegmentedControl ändern sich nur die Rahmenfarbe
War auf der Suche rund um und versuchen zu ändern, nur die Grenze, Farbe (mit einem anderen text-Farbe) nicht mit Glück. Ändern können Sie den Farbton, sondern ändert sich sowohl die text-und Rahmen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie UIAppearance proxy-Satz-Titel-text-Attribute, aber bewahren tintColor für die Grenzen.
So etwas wie:
Edit:
Tönung der Bilder, die Sie verwenden können, so etwas in die Kategorie " UImage:
[self.segmentControl insertSegmentWithImage:[[UIImage imageNamed:@"myImage.png"] tintedImageWithColor:[UIColor redColor]] atIndex:i animated:NO];
Bevorzuge ich die andere Lösung (keine Kategorie), wenn Sie Bilder für
UISegmentedControl
als Sie zu verändern Bilder so:Nun
tintColor
haben Einfluss nur auf die Grenze, nicht auf die Symbole.if
bietet Kompatibilität mit älteren iOS-Versionen.Ich muss sagen, dieses
imageWithRenderingMode:
ist einer der größten API WTF ich je gesehen habe.tintColor
. Aber dies hat Auswirkungen auf die Symbole in der Standardeinstellung, und das verhindert dieses problem. Ich bin davon ausgegangen, dass dies offensichtlich ist, anscheinend lag ich falsch also ich hab ein update gemacht. Angenommen Antwort zu lösen gleiche problem mit der Kategorie, als ein workaround. Mein Ansatz ist viel besser.Was für mich gearbeitet: ist wie die anderen Antworten vorschlagen, ändern die tintColor der segmentedControl zu clearColor. Und manuell Farbton der Bilder an Ihre app-tint-color.
Daran denken, die
imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal
auf das eingefärbte BildKönnen Sie ändern Sie zuerst die tintColor und nach dem Titeltext.
Meine Lösung gibt die Grenze der segmentierten Kontrolle einer anderen Farbe, und hält der text die Farbe.
In Ordnung, nur ändern Sie die Rahmenfarbe Ihres segmentierten Kontrolle, legte ein weiteres segmented control auf der Oberseite des alten. Dann deaktivieren Sie Benutzer-Interaktion mit dieser neuen, und wie ich das Bild für das ausgewählte segment auf null.
Natürlich, Sie kümmern sich um die Gestaltung und Farbgebung passend zu Ihrer Anwendung. Andere als, dass, sollte dieser code gut zu gehen.