Ich möchte wissen, wie man die Titelfarbe eines UIButton auf den Standardwert zurücksetzt.
Ich habe einen Button, mit dem ich die Titelfarbe ändere, um anzuzeigen, dass etwas eingeschaltet ist, so;
[cell.offStateSwitch setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
Wenn es ausgeschaltet ist, möchte ich es auf die Standardfarbe zurücksetzen.
Ich kann nicht herausfinden, wie man die Standard-Systemfarbe für ein UIButton bekommt. Ich habe viele Leute gefunden, die dies tun, indem sie einen bestimmten RGB-Wert erzwingen, aber das ist bei verschiedenen Versionen von iOS nicht unbedingt korrekt.
Setzen Sie die Farbe auf Null, und das Verhalten wird auf den Wert vor der Änderung zurückgesetzt, einschließlich der korrekten Reaktion auf Warnungen.
%Vor%Ich nehme an, Sie meinen, Sie möchten den Text zurück auf die Farbtonfarbe . Wenn Sie nur den aktuellen FarbtonColor möchten, können Sie Folgendes tun:
%Vor%Die tintColor soll sich jedoch unter bestimmten Umständen automatisch ändern, etwa wenn eine Warnung erscheint. Um das zu erreichen, müssen Sie einen eigenen Button definieren:
%Vor%In diesem Fall schlage ich vor, dass Sie den ausgewählten Zustand für Ihre spezielle Farbe verwenden:
%Vor% und setzen button.selected = YES
, wenn "etwas ist an", wie Sie sagen.
oder
%Vor%In iOS v7.0 leiten alle Unterklassen von UIView ihr Verhalten für tintColor aus der Basisklasse. Siehe die Diskussion von tintColor im UIView-Ebene für weitere Informationen.
Diese Eigenschaft hat keinen Standardeffekt für Schaltflächen mit Typ UIButtonTypeCustom. Für benutzerdefinierte Schaltflächen müssen Sie beliebige implementieren Verhalten in Bezug auf TintColor selbst.
Wenn Sie UIBottons tintColor auf nil (null) setzen, wird die Farbe des Titels zurückgesetzt
Es gibt keine Eigenschaft für Standardtitelfarbe in iOS, Sie können es einfach erhalten.
Definieren Sie einfach defaultColor:
UIColor* defaultColor;
dann in Ihrem viewDidLoad
put oder wo auch immer die Ansicht initialisiert wird:
Dann haben Sie defaultColor als Standardfarbe für den Titel.
Fügen Sie den folgenden Code in CellForRowAtIndexPath delegate ......
hinzu %Vor%Fügen Sie in der Tastenaktion den folgenden Code hinzu
%Vor%