我在 iOS7 上使用自动布局,我遇到了这样的问题:
我将一个 UILabel 放到一个 UIView 上,并且我正在安排我的自动布局约束,以便标签的 centerX = 父 View 的 centerX。我没有给标签任何宽度限制。当我在运行时设置标签的文本时,标签的宽度刚好足以容纳文本,左右两侧没有边距/填充。我想要的是在左侧和右侧有一些填充,这样文本就不会在标签开始的地方开始。实现这一点的技巧可能是将文本设置为@"文本",但当然这不是正确的方法:)
我怎样才能实现我想要的?
最佳答案
您可以自己扩展 UILabel 并覆盖 intrinsicContentSize。请确保您也设置了 textAlignment = NSTextAlignmentCenter。
-(CGSize)intrinsicContentSize{
CGSize contentSize = [super intrinsicContentSize];
return CGSizeMake(contentSize.width + 50, contentSize.height);
}
swift 5.0
open override var intrinsicContentSize: CGSize {
let size = super.intrinsicContentSize
return CGSize(width: size.width + 16, height: size.height)
}
这可能只适用于只有一行文本要显示的情况。
关于ios - 如何向 UILabel 的固有内容大小添加填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20874203/