2010-11-17 129 views
39

我收到警告,說setFont已被棄用?setFont已棄用?

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

任何建議如何把它拿走請..

回答

110

由於UIButton的暴露了其titleLabel從iPhone開始OS 3.0,你必須直接設置字體給它:

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

感謝您的信息! :) – 2013-04-03 13:21:38

10

接受的答案的作品,並設置一個按鈕實例的字體。如果你想設置應用廣泛的字體爲所有UIButtons,你可以做這樣的:

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

這是不是在這個問題特別要求,但如果你需要設置字體爲所有標籤(未在UIButtons內),你可以這樣做:

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

這是一個好主意。可悲的是,UILabel沒有UIAppearance代理中的字體屬性,這就是爲什麼字體不起作用。看到這個答案http://stackoverflow.com/questions/17127921/appearance-proxy-not-working-as-intended-for-uibutton-font – 2014-05-07 07:44:34

+1

@EvaMadrazo你能詳細說明什麼是行不通的?我在我的項目中使用上面的代碼,它工作正常。爲了讓'appearanceWhenContainedIn'處理'UIButton',將按鈕類型設置爲'UIButtonTypeCustom'。 – lekksi 2014-05-07 11:44:25

+0

@EvaMadrazo哦,你的意思是「爲所有標籤設置字體」不適用於'UIButton's?這是真的,我編輯答案更加清晰。 – lekksi 2014-05-07 11:50:53