【问题标题】:How can I get the font size and font name of a UILabel?如何获取 UILabel 的字体大小和字体名称?
【发布时间】:2011-06-19 11:08:32
【问题描述】:

我有一个 UILabel,我使用 Interface Builder 设置了字体大小和字体名称。现在我必须在我的 ViewController 中读取两者的值。

我该怎么做?

【问题讨论】:

标签: ios


【解决方案1】:

在视图控制器的 .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;

【讨论】:

  • 不起作用。我可以在里面写文字,但是 fontName 和 pointSize 是空的。
  • 您的意思是可以通过编程方式更改标签的文本,但无法访问 fontName 和 pointSize?我编辑了上面的答案以包含 self.label,而不仅仅是标签,因为我没有提到为标签创建实例变量。
  • 另外,请确保您已将 Interface Builder 中的标签与您在 File's Owner(视图控制器)中创建的 IBOutlet 连接起来。
  • 啊,我忘记了 IB 中与文件所有者的连接。
【解决方案2】:

斯威夫特:

var currentFontSize = button.titleLabel?.font.pointSize

【讨论】:

    【解决方案3】:

    Pointsize 值不是 UIFont 大小属性中使用的字体大小。假设你将 interface builder 字体大小设置为 14 并打印 pointSize 你只会得到 11。

    【讨论】:

    • 现在似乎可以工作了。如果我在界面生成器/情节提要编辑器中将标签的字体大小设置为 17...myLabel.font.pointSize 返回 17。
    【解决方案4】:

    你必须将它附加到 UILabel IBOutlet,然后,label.font...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多