2013-08-14 6 views
7

Próbuję dodać podkreślenie do mojego tytułu na niestandardowym UIButtonie, ale podążając za przykładem znalezionym pod numerem here, nie mogę go wyświetlić na ekranie.UIButton setAttributedTitle: forState: Not Showing Up

Oto kod próbuję użyć:

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]; 

nie pojawi. Ale jeśli robię zwykły, taki jak:

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

To pokazuje się dobrze. Czy ktoś może mi powiedzieć, czego mi brakuje?

+0

Moja odpowiedź była niepoprawna, więc ją usunąłem. Jaką wersją systemu iOS kierujesz reklamy? – Firo

+0

@Firo iOS 6.0 lub nowszy – daveMac

Odpowiedz

10

Uświadomiłem sobie problem tutaj. Zakładałem, że to się nie pojawiło, bo nie mogłem tego zobaczyć. Jednak pojawił się, jest w tym samym kolorze co tło.

Błędnie założyłem, że [button setTitleColor:myColor forState:UIControlStateNormal]; byłby kolorem, którego użyłaby również atrybut attitedTitle. Jednak moje tło jest czarne, a NSMutableAttributedString domyślnie czarne.

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

Sprawia, że ​​wyświetla się poprawnie.

+0

FYI, powyższa odpowiedź @ middaparka nie odnosi się do mojej odpowiedzi. Odpowiadało to niezadowolonemu użytkownikowi, który chciał wiedzieć, dlaczego ich błędna odpowiedź została odrzucona. – daveMac