2011-02-01 136 views
91

我有一個UILabel,我用Interface Builder設置字體大小和字體名稱。現在我必須在我的ViewController中讀取兩者的值。如何獲取UILabel的字體大小和字體名稱?

我該怎麼做?

+0

這個方法已經被廢棄了iOS7,看看這篇文章 http://stackoverflow.com/questions/19128797/calculating-uilabel-text-size – Maria 2014-10-17 17:41:21

回答

227

屬性添加到您的視圖控制器的.h文件中:

@property (nonatomic, retain) IBOutlet UILabel *label; 

在Interface Builder的「文件所有者」出口下將標籤鏈接到此IBOutlet。如果不使用ARC,請確保您釋放它在-dealloc

- (void)dealloc 
{ 
    [self.label release]; 
    [super dealloc]; 
} 

然後可以獲得字體名稱和大小的所有你需要的是

NSString *fontName = self.label.font.fontName; 
CGFloat fontSize = self.label.font.pointSize; 
+3

不起作用。我可以在其中寫入文本,但fontName和pointSize爲空。 – Tim 2011-02-02 09:18:39

+0

您的意思是說,您可以通過編程方式更改標籤的文本,但是您無法訪問fontName和pointSize?我編輯了上面的答案,以包含self.label,而不僅僅是標籤,因爲我沒有提及爲標籤創建實例變量。 – Ned 2011-02-02 14:36:55

1

你必須把它連接到一個UILabel IBOutlet中,然後,label.font ...

15

的pointsize值不是在UIFont使用的字體大小大小的屬性。說,如果你去設置界面生成器字體大小爲14,做的pointsize的打印,你只會得到11

15

斯威夫特:

var currentFontSize = button.titleLabel?.font.pointSize 
相關問題