当行数增加/减少时,找到UILabel的高度

时间:2018-06-13 18:27:21

标签: ios iphone swift uilabel

我试图以编程方式在屏幕上找到UILabel占用的高度/空间,其行数根据不同的设备和字符串内化而增加或减少。所以我试图通过以下方法获得UILable的高度。

uiLable.bounds.size.height/ uilable.frames.size.height

此方法在 viewDidAppear viewDidLoad 方法中实施。在这两种方法中,返回的高度在所有设备上都是相同的,并且当行数增加/减少时。请找到我所拥有的UI的屏幕截图。我必须将开关按钮对齐到两个文本的中心(记住所有会议,并且可以在设置中更改这些)。

enter image description here

任何帮助将不胜感激。在此先感谢

3 个答案:

答案 0 :(得分:1)

更新标签中的文字后,您可以强制布局系统更新其UI,然后获得标签的正确边界。

// set your label text
label.text = "multiline text here"

// Now force layout system to update its UI instantly
self.view.setNeedsLayout()
self.view.layoutIfNeeded()

// Now you will get the correct bounds
let bounds = label.bounds

答案 1 :(得分:0)

  

我试图以编程方式在屏幕上找到UILabel占用的高度/空间,其数量根据不同的设备和字符串内化而增加或减少。

不要试图这样做。你没有理由想知道它。

  

请找到我所拥有的UI的屏幕截图。我必须将开关按钮对齐到两个文本的中心

然后将其与自动布局对齐。这正是它的用途。让运行时为您解决问题。如果不使用自动布局来处理这类事情,就无法成功实现国际化。

答案 2 :(得分:0)

您可以将标签放在一个视图中并设置autolayout,因为verticalCenter视图等于切换按钮的垂直中心。