我有一个,UILabel但由于某种原因,它的顶部和底部有额外的填充。我希望标签的高度恰好是其中文本的高度。
我一直在寻找其他问题,但似乎找不到真正有效的解决方案。或者解决方案要求您在layoutSubviewsVC的方法中调用某些内容,但我希望所有视图代码都存储在我的视图文件中。
有谁知道如何解决这一问题?
打电话就像;
let labelSize = UILabelWidthBasedOnTextLength(with: titleLabel)
Run Code Online (Sandbox Code Playgroud)
然后使用像 labelSize.width 这样的方法来应用约束。
func UILabelWidthBasedOnTextLength(with label: UILabel) -> CGSize? {
guard let text = label.text,
let font = UIFont(name: label.font.fontName,
size: label.font.pointSize) else { return nil }
var frame: CGRect = label.frame
frame.size = text.size(withAttributes: [NSAttributedString.Key.font: font])
return frame.size
}
Run Code Online (Sandbox Code Playgroud)
这个问题很久以前就问过,但我只是想贡献这种方法。也许这对任何新开发人员都有用。
| 归档时间: |
|
| 查看次数: |
2426 次 |
| 最近记录: |