我试图以编程方式在屏幕上找到UILabel占用的高度/空间,其行数根据不同的设备和字符串内化而增加或减少。所以我试图通过以下方法获得UILable的高度。
uiLable.bounds.size.height/ uilable.frames.size.height
此方法在 viewDidAppear 和 viewDidLoad 方法中实施。在这两种方法中,返回的高度在所有设备上都是相同的,并且当行数增加/减少时。请找到我所拥有的UI的屏幕截图。我必须将开关按钮对齐到两个文本的中心(记住所有会议,并且可以在设置中更改这些)。
任何帮助将不胜感激。在此先感谢
答案 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视图等于切换按钮的垂直中心。