2010-11-17 2 views
39

Je reçois un avertissement disant que setFont est obsolète?setFont Déconseillé?

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

Toute suggestion comment Emportez-pls ..

Répondre

110

Comme UIButton expose son TitleLabel à partir de l'iPhone OS 3.0, vous devez définir la police directement à:

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

Merci pour l'info! :) –

10

Les œuvres de réponse acceptée et définit la police pour une instance de bouton. Si vous souhaitez définir une large application police pour tous UIButtons, vous pouvez le faire comme ceci:

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

Cela n'a pas été demandé spécifiquement à la question, mais au cas où vous devez définir la police pour toutes les étiquettes (non à l'intérieur de UIButtons), vous pouvez le faire comme ceci:

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

C'est une bonne idée. malheureusement UILabel n'a pas la propriété de police dans le proxy UIAppearance et c'est pourquoi la police ne fonctionne pas. Voir cette réponse http://stackoverflow.com/questions/17127921/appearance-proxy-not-working-as-intended-for-uibutton-font –

+1

@EvaMadrazo pourriez-vous élaborer ce qui ne fonctionne pas? J'utilise le code ci-dessus dans mon projet et ça fonctionne bien. Pour obtenir 'appearanceWhenContainedIn' travaillant avec' UIButton', définissez le type de bouton sur 'UIButtonTypeCustom'. – lekksi

+0

@EvaMadrazo oh, vouliez-vous dire que "Définir la police pour toutes les étiquettes" ne fonctionne pas pour 'UIButton's? C'est vrai, j'ai édité la réponse pour être plus clair. – lekksi

Questions connexes