首页 文章

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

提问于
浏览
-1

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

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

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

enter image description here

任何帮助,将不胜感激 . 提前致谢

3 回答

  • 0

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

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

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

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

  • 0

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

  • 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
    

相关问题