@@ -40,17 +40,28 @@ open class CSPaddingLabel: UILabel {
4040 }
4141 }
4242
43- open override func drawText( in rect: CGRect ) {
44- let insets = UIEdgeInsets ( top: topInset, left: leftInset, bottom: bottomInset, right: rightInset)
45- super. drawText ( in: rect. inset ( by: insets) )
43+ override open func textRect( forBounds bounds: CGRect , limitedToNumberOfLines numberOfLines: Int ) -> CGRect {
44+ let insetRect = bounds. inset ( by: edgeInsets)
45+ let textRect = super. textRect ( forBounds: insetRect, limitedToNumberOfLines: numberOfLines)
46+ let invertedInsets = UIEdgeInsets (
47+ top: - edgeInsets. top,
48+ left: - edgeInsets. left,
49+ bottom: - edgeInsets. bottom,
50+ right: - edgeInsets. right
51+ )
52+ return textRect. inset ( by: invertedInsets)
4653 }
4754
48- open override var intrinsicContentSize : CGSize {
55+ override open func drawText( in rect: CGRect ) {
56+ super. drawText ( in: rect. inset ( by: edgeInsets) )
57+ }
58+
59+ override open var intrinsicContentSize : CGSize {
4960 let size = super. intrinsicContentSize
5061 return CGSize ( width: size. width + leftInset + rightInset, height: size. height + topInset + bottomInset)
5162 }
5263
53- open override func sizeThatFits( _ size: CGSize ) -> CGSize {
64+ override open func sizeThatFits( _ size: CGSize ) -> CGSize {
5465 let size = super. sizeThatFits ( size)
5566 return CGSize ( width: size. width + leftInset + rightInset, height: size. height + topInset + bottomInset)
5667 }
0 commit comments