2013-08-14 6 views
7

Sto cercando di aggiungere la sottolineatura al mio titolo su un UIButton personalizzato ma seguendo l'esempio trovato here, non riesco a farlo visualizzare sullo schermo.UIButton setAttributedTitle: forState: Not Showing Up

Ecco il codice che sto cercando di utilizzare:

NSMutableAttributedString *commentString = [[NSMutableAttributedString alloc] initWithString:@"The Quick Brown Fox"]; 

[commentString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, [commentString length])]; 

[button setAttributedTitle:commentString forState:UIControlStateNormal]; 

Questo non si presenta. Ma se ne faccio uno regolare, in questo modo:

[button setTitle:@"The Quick Brown Fox" forState:UIControlStateNormal]; 

Questo si presenta bene. Qualcuno può dirmi cosa mi manca?

+0

La mia risposta era errata, quindi l'ho cancellata. Quale versione di iOS stai prendendo di mira? – Firo

+0

@Firo iOS 6.0 o successivo – daveMac

risposta

10

Ho capito il problema qui. Immaginavo che non si presentasse perché non riuscivo a vederlo. Tuttavia, stava mostrando, è solo lo stesso colore dello sfondo.

Ho erroneamente assunto che [button setTitleColor:myColor forState:UIControlStateNormal]; sarebbe il colore che ilTitolo attribuito userebbe pure. Tuttavia, il mio background è nero e NSMutableAttributedString deve essere impostato come nero.

[commentString addAttribute:NSForegroundColorAttributeName value:myColor range:NSMakeRange(0, [commentString length])]; 

Fa apparire correttamente.

+0

FYI, la risposta di @ middaparka sopra non si riferisce alla mia risposta. Era in risposta a un utente insoddisfatto che voleva sapere perché la sua risposta errata era stata votata. – daveMac