2016-03-23 18 views
1

Ich versuche, attributierten String-Titel auf UIButton zu setzen, aber es scheint hier nicht zu funktionieren.setAttributedText funktioniert nicht auf UIButton?

[self.emailSignInButton.titleLabel setAttributedText:[[NSAttributedString alloc] initWithString:NSLocalizedString(@"LOGIN_WITH_EMAIL", nil) attributes:@{ NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}]]; 

Während dies vollständig funktioniert gut.

Die seltsame Sache ist eine andere Taste Text ist gut mit attributierten Text. z.

[self.emailSignupButton.titleLabel setAttributedText:[[NSAttributedString alloc] initWithString:NSLocalizedString(@"CREATE_ACCOUNT_WITH_EMAIL", nil) attributes:@{ NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}]]`; 

Irgendeine Idee, was hier passiert?

Antwort

2

Sie müssen den Text für den Status der Schaltfläche festlegen. Es gibt ein paar verschiedene Zustände ein UIButton in sein kann.

  • Normale
  • Hervorgehoben
  • Behinderten
  • Ausgewählte
  • Focused
  • Anwendung
  • Reserviert

Sie wird am meisten wahrscheinlich benötigt Normal, dies wird einen Standardtitel für alle Fälle festlegen.

UIButton

  • setAttributedTitle: forState:

Legt den Stil Titel für den angegebenen Zustand zu verwenden. Hier

ist ein Beispiel mit Ihrem Code

NSAttributedString *string = [[NSAttributedString alloc] initWithString:NSLocalizedString(@"LOGIN_WITH_EMAIL", nil) 
                  attributes:@{ NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}] 

[self.emailSignInButton setAttributedTitle:string forState:UIControlStateNormal]; 

Referenzen:

UIControlState

UIButton - setAttributedTitle:forState:

+0

Es ist jetzt leer Zeichenfolge an den UIButton Titellabel zu setzen. – kidsid49

+0

@ kidsid49 können Sie erarbeiten? Hast du den Titel für den Staat festgelegt? Hast du einen Beispielcode? –

+0

Ja, ich habe getan, was du vorgeschlagen hast, für den Staat und dann ist es passiert. – kidsid49

Verwandte Themen