根据UILabel动态设置UIView的高度

Posted

技术标签:

【中文标题】根据UILabel动态设置UIView的高度【英文标题】:Dynamically Set height UIView according to UILabel 【发布时间】:2021-08-12 04:59:32 【问题描述】:

我希望我的答案标签根据文本增加高度,并根据答案标签高度设置 UIView 的高度。

你也告诉我你的解决方案。归档这个目标

这是我的故事板

【问题讨论】:

【参考方案1】:

您需要先找到标签的高度。您可以通过以下方式做到这一点

extension String 
   func height(withConstrainedWidth width: CGFloat, font: UIFont) -> CGFloat 
        let constraintRect = CGSize(width: width, height: .greatestFiniteMagnitude)
        let boundingBox = self.boundingRect(with: constraintRect, options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: font], context: nil)

        return ceil(boundingBox.height)
    

然后你可以像这样找到高度:

let height = "yourString".height(withConstrainedWidth: "THE WIDTH YOU ARE SETTING", UIFont.systemFont(ofSize: 15))

你可以保留你设置的任何宽度和字体,你会得到高度。

现在您可以保持视图的高度约束等于标签的高度

【讨论】:

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

如何设置UIView高度等于两个子视图UILabel的最大值?

如何设置 UIView 高度等于两个子视图 UILabel 的最大值?

根据 Swift 中的 UILabel 文本调整 UIView 高度

我怎样才能得到 UILabel 的高度?

AutoLayout动态调整UILabel高度和宽度

如何将 UIImage 设置为 UITableView Cell,它根据我在 UILabel 中输入的文本动态计算单元格高度?