我有一个问题,UILabel子类切断底部的文本 . 标签的高度适合文本,底部留有一些空间,但文本仍然被剪掉 .
红色条纹是添加到标签图层的边框 .
我将标签子类化以添加边缘插入 .
override func sizeThatFits(size: CGSize) -> CGSize {
var size = super.sizeThatFits(size)
size.width += insets.left + insets.right
size.height += insets.top + insets.bottom
return size
}
override func drawTextInRect(rect: CGRect) {
super.drawTextInRect(UIEdgeInsetsInsetRect(rect, insets))
}
但是,在这种特殊情况下,插入是零 .
4 回答
事实证明问题在于
改变它
解决了这个问题
在为同时提供topAnchor和centerYAnchor标签时发生的事情发生了 . 只留下一个锚就解决了这个问题 .
我的问题是标签的(垂直)内容压缩阻力优先级不够高;将其设置为必需(1000)修复它 .
看起来其他非OP答案可能是针对同一个潜在问题的某种解决方法 .
其他答案对我没有帮助,但是将标签的高度限制在所需的任何高度,例如:
此外,如果您的标签
text
字段为nil
或等于""
,sizeThatFits(_:)
将返回0 by 0
大小