我一直在使用的StackOverflow的popular thread解决自动布局问题设置我的UILabel填充。 这个线程基本上是一个UILabel扩展。答案不能设置的UILabel填充在tableViewcell
部分是:
class NRLabel : UILabel {
var textInsets = UIEdgeInsets.zero {
didSet { invalidateIntrinsicContentSize() }
}
override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {
let insetRect = UIEdgeInsetsInsetRect(bounds, textInsets)
let textRect = super.textRect(forBounds: insetRect, limitedToNumberOfLines: numberOfLines)
let invertedInsets = UIEdgeInsets(top: -textInsets.top,
left: -textInsets.left,
bottom: -textInsets.bottom,
right: -textInsets.right)
return UIEdgeInsetsInsetRect(textRect, invertedInsets)
}
override func drawText(in rect: CGRect) {
super.drawText(in: UIEdgeInsetsInsetRect(rect, textInsets))
}
}
一切工作正常,填充已添加,但我需要重新加载tableViewcell看到效果。
我已重写我的customCell的viewWillLayoutSubviews()函数像这样填充
self.chatLabel.textInsets = UIEdgeInsets.init(top: 10, left: 10, bottom: 10, right: 10)
,效果是这样的。
你看,第一个标签得到它的重装电池后填充。
PLS建议如何使用,使这个问题解决了上面提到的扩展来实现的UILabel填充。
目前尚不清楚你想要的目的。你是什么想要一个带填充的UILabel?任何理由不把标签作为UIView的子视图,只使用自动布局和约束? – DonMag
@elk_cloner你可以在你的单元格中使用cell.dequeue吗? –
我已经使用了自定义单元格。我想与填充 –