调用 sizeToFit 后调整 UILabel 大小和文本位置
Adjusting UILabel size and text position after calling sizeToFit
当前结果:
我可以通过调用 sizeToFit
来调整标签的大小,这在构建文本方面做得很好 -- 然而,即使使用 NSTextAlignmentCenter
,文本也不完全一样水平或垂直居中。要调整标签内的文本定位,我已覆盖 drawTextInRect:
以使用 UIEdgeInserts
调整文本矩形。
预期结果:
既然文本已居中,我想扩展标签以在文本和标签边缘之间添加一些 space。任何帮助将不胜感激,谢谢!
我会通过创建 UILabel
的子类并覆盖 intrinsicContentSize
而不是 drawTextInRect:
来实现。
override func intrinsicContentSize() -> CGSize {
self.sizeToFit()
frame = frame.rectByInsetting(dx: -12, dy: -6)
var size = frame.size
return size
}
当然,文字对齐也需要设置为居中
当前结果:
我可以通过调用 sizeToFit
来调整标签的大小,这在构建文本方面做得很好 -- 然而,即使使用 NSTextAlignmentCenter
,文本也不完全一样水平或垂直居中。要调整标签内的文本定位,我已覆盖 drawTextInRect:
以使用 UIEdgeInserts
调整文本矩形。
预期结果:
既然文本已居中,我想扩展标签以在文本和标签边缘之间添加一些 space。任何帮助将不胜感激,谢谢!
我会通过创建 UILabel
的子类并覆盖 intrinsicContentSize
而不是 drawTextInRect:
来实现。
override func intrinsicContentSize() -> CGSize {
self.sizeToFit()
frame = frame.rectByInsetting(dx: -12, dy: -6)
var size = frame.size
return size
}
当然,文字对齐也需要设置为居中