2016-07-24 11 views
1

Ich weiß, dass diese Frage beantwortet werden muss, aber immer noch möchte ich wissen, warum die erste Zeile des Codes Titel der UIButton nicht ändern konnte, während die zweite kann. Außerdem wird die erste Zeile aus einem Objective-C-Buch von BigNerdRanch kopiert ... was ich als Beispiel nehme, das funktioniert.Änderung UIButton Titel über titleLabel.text Eigenschaft funktioniert nicht: warum?

[email protected]"foo"; //doesn't work 

[self.assetTypeButton setTitle:@"foo" forState:UIControlStateNormal]; //this works and button title is changed. 
+0

[read this] (http://stackoverflow.com/a/11417134/1066828) & [diese] (http://stackoverflow.com/a/4910521/1066828) –

+1

Mögliche Duplikat [iOS: UIButton titleLabel - macht es überhaupt etwas?] (Http://stackoverflow.com/questions/4910446/ios-uibutton-titlelabel-does-it-do-anyingthat-all) –

Antwort

0

Die bessere Erklärung von Apple TitleLabeland setTitle

Titlelabel

UIButton *button = [UIButton buttonWithType: UIButtonTypeSystem]; 
button.titleLabel.font   = [UIFont systemFontOfSize: 12]; 
button.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail; 

Sie das Label-Objekt nicht verwenden, um die Textfarbe oder die Schattenfarbe einzustellen. Verwenden Sie stattdessen setTitleColor: forState: und setTitleShadowColor: forState: Methoden dieser Klasse, um diese Änderungen vorzunehmen.

Die Titlelabel Eigenschaft gibt einen Wert, auch wenn die Taste nicht wurde noch angezeigt. Der Wert der Eigenschaft ist null für System Schaltflächen.

setTitle

Mit dieser Methode können den Titel für die Taste. Der Titel, den Sie angeben, leitet seine Formatierung von dem zugeordneten Objekt der Schaltfläche ab. Wenn Sie für die Schaltfläche sowohl einen Titel als auch einen attributierten Titel festlegen, verwendet die Schaltfläche die Verwendung des zugeordneten Titels über diesen .

Zumindest sollten Sie den Wert für den Normalzustand einstellen. Wenn für einen Status kein -Titel angegeben ist, wird standardmäßig der mit dem UIControlStateNormal-Status verknüpfte Titel verwendet. Wenn der Wert für UIControlStateNormal nicht festgelegt ist, wird für die Eigenschaft standardmäßig der Wert des Systems verwendet.

Verwandte Themen