获取动态UILabel的高度

Posted

技术标签:

【中文标题】获取动态UILabel的高度【英文标题】:Get dynamic UILabel's height 【发布时间】:2014-11-22 16:43:21 【问题描述】:

我想了解名为descriptionTextUILabel 的高度。我可以用下面的代码记录它,但问题是它不是我想要的数据。它只是具有 1 行的基本标签的大小,而文本有 3 行(或更多)行。我正在使用自动布局并且它可以工作,我可以显示具有动态高度的文本,但由于另一个错误,我需要知道它的真实高度。

这是我给出标签基本高度的尝试:

- (void)viewDidLoad 

      [super viewDidLoad];
      NSLog(@" description height = %f", self.descriptionText.frame.size.height); 

是否有可能以某种方式获得已在屏幕上呈现的UILabel 的真实高度?

作为替代方案,我可以使用行数计算所需的值。

【问题讨论】:

你把这个电话放在哪里? @sha 对不起,我忘记了。我在 viewDidLoad 中使用它 viewWillAppear:中检查标签的大小。 viewDidLayoutSubviews 不幸的是viewWillAppear: 没有帮助,但viewDidLayoutSubviews 似乎不错。谢谢 【参考方案1】:

您可能意识到viewDidLoad 不是放置日志的正确位置。viewDidLoad 在视图加载到内存后调用,但尚未执行布局,因此标签的框架反映了最初在故事板文件。

如果您想在布局完成后检查框架,您需要覆盖viewDidLayoutSubviews,它将在布局完成并设置所有框架后调用。

【讨论】:

以上是关于获取动态UILabel的高度的主要内容,如果未能解决你的问题,请参考以下文章