2010-11-17 13 views
39

Otrzymuję ostrzeżenie, że setFont jest przestarzałe?setFont przestarzałe?

[button setFont:[UIFont boldSystemFontOfSize:13]]; 

jakieś sugestie jak go zabrać pls ..

Odpowiedz

110

Jak UIButton eksponuje swoje titleLabel wychodząc z iPhone OS 3.0 należy ustawić czcionkę do niego bezpośrednio:

[button.titleLabel setFont:[UIFont boldSystemFontOfSize:13]]; 
+1

Dzięki za informację! :) –

10

Przyjęte prace odpowiedź i ustawia czcionkę dla jednej instancji przycisku. W przypadku, gdy chcesz ustawić aplikacji szeroki czcionki dla wszystkich UIButtons, można zrobić to tak:

// Set font to be used for labels inside UIButtons 
[[UILabel appearanceWhenContainedIn:[UIButton class], nil] setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:15.0]]; 

To nie był specjalnie poprosił w pytaniu, ale w przypadku trzeba ustawić czcionkę dla wszystkich etykiet (nie wewnątrz UIButtons), możesz to zrobić tak:

// Set font for all UILabels 
[[UILabel appearance] setFont:[UIFont fontWithName:@"HelveticaNeue" size:13.0]]; 
+0

To jest dobry pomysł. Niestety UILabel nie ma właściwości czcionki w proxy UIAppearance i dlatego czcionka nie działa. Zobacz tę odpowiedź http://stackoverflow.com/questions/17127921/appearance-proxy-not-working-as-intended-for-uibutton-font –

+1

@EvaMadrazo, czy mógłbyś rozwinąć to, co nie działa? Używam powyższego kodu w moim projekcie i działa dobrze. Aby uzyskać 'appearanceWhenContainedIn' przy pracy z' Uibutton', ustaw typ przycisku na 'UIButtonTypeCustom'. – lekksi

+0

@EvaMadrazo oh, czy masz na myśli, że "Ustaw czcionkę dla wszystkich etykiet" nie działa dla 'UIButton's? To prawda, zredagowałem odpowiedź, aby było bardziej zrozumiałe. – lekksi