UILabel 有错误的框架。迅速

Posted

技术标签:

【中文标题】UILabel 有错误的框架。迅速【英文标题】:UILabel has wrong frame. Swift 【发布时间】:2018-08-13 16:24:33 【问题描述】:

我在一个单元格中添加了四个 UILabel,似乎我添加了所有必要的约束,但我无法使我的标签具有与其文本内容相等的框架。也不能设置高度。标签看起来像这样(文字出现在中心,边框很大):

我希望它是这样的:

另外,我以编程方式做所有事情,所以我不是在寻找使用 Interface Builder 的解决方案

【问题讨论】:

会不会是字体大小? 请展示您迄今为止尝试过的代码,以便我们为您提供帮助 分享你到目前为止所做的事情会有所帮助。有太多的事情可能导致这种情况。我们需要查看您的代码才能缩小解决方案的范围。 【参考方案1】:

如果您希望标签是内容的大小,请将 Content Hugging Priority 设置为 .required:

label.setContentHuggingPriority(.required, for: .horizontal)
label.setContentHuggingPriority(.required, for: .vertical)

这将防止较低优先级的约束拉伸您的标签。

【讨论】:

【参考方案2】:
label.font = label.font.withSize(label.frame.height)

【讨论】:

以上是关于UILabel 有错误的框架。迅速的主要内容,如果未能解决你的问题,请参考以下文章

如何在框架中水平(向上/向下)居中 UILabel 文本?

动画父 UIView 的框架(大小)时自动调整 UILabel 的框架

UILabel 调整大小不起作用

Swift 和 UILabel - 致命错误:在展开可选值时意外发现 nil

Swift 3 Eureka 验证 UILabel 有错误

无法在 UICollectionView 中修改 UILabel 框架?