2011-02-01 150 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 
相关问题