Gibt es eine Möglichkeit, sich auf einem Uibutton niederzulassen, der alle UIControlstates gleichzeitig aktualisiert?

StackOverflow https://stackoverflow.com/questions/1375145

  •  21-09-2019
  •  | 
  •  

Frage

Ich habe einen Uibutton, und ich möchte seinen Titel aktualisieren, aber ich muss es lieber für jeden einzelnen Zustand nicht immer tun, wie der folgende:

[myButton setTitle:@"Play" forState:UIControlStateNormal];

[myButton setTitle:@"Play" forState:UIControlStateHighlighted];

[myButton setTitle:@"Play" forState:UIControlStateSelected];

Gibt es einen besseren Weg?

War es hilfreich?

Lösung

Nach der Dokumentation sollten Sie nur anrufen:

In Objective-C:

[myButton setTitle:@"Play" forState:UIControlStateNormal];

In Swift:

myButton.setTitle("Play", for: .normal)

Die Uibutton -Dokumente erklären, warum:

Wenn eine Eigenschaft für einen Zustand nicht angegeben ist, besteht im Allgemeinen die Verwendung des Uicontrolstatenorurmwerts. Wenn der Wert für UIControlstatenormale nicht festgelegt ist, stand die Eigenschaft standardmäßig mit einem Systemwert. Mindestens sollten Sie den Wert für den normalen Zustand festlegen.

Wenn Sie den Normalwert nur festlegen, beziehen sich die anderen Zustände beim Festlegen.

Andere Tipps

oder Sie können sich besiegen durch:

[myButton setTitle:@"Play" forState:UIControlStateNormal|UIControlStateHighlighted|UIControlStateSelected];

2019

Es ist nur

yourButton.setTitle("Click me", for: .normal)

Sie können eine Kategorie für Uibutton erstellen:

@implementation UIButton (Addition)
-(void)setTitleForAllStates:(NSString *)title {
     //you can add/remove this area : UIControlStateApplication, UIControlStateDisabled, UIControlStateReserved
     [self setTitle:title forState:UIControlStateNormal];
     [self setTitle:title forState:UIControlStateSelected];
     [self setTitle:title forState:UIControlStateHighlighted];
}
@end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top