我一直在使用的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嗎? –
我已經使用了自定義單元格。我想與填充 –