728x90
반응형
UILabel에는 Padding을 적용해주는 속성이 없다.
하기와 같이 CustomView로 Label Padding을 적용함
import Foundation
import UIKit
@IBDesignable class PaddingLabel: UILabel {
@IBInspectable var topPadding: CGFloat = 0.0
@IBInspectable var leftPadding: CGFloat = 0.0
@IBInspectable var bottomPadding: CGFloat = 0.0
@IBInspectable var rightPadding: CGFloat = 0.0
convenience init(padding: UIEdgeInsets) {
self.init()
self.topPadding = padding.top
self.leftPadding = padding.left
self.bottomPadding = padding.bottom
self.rightPadding = padding.right
}
override func drawText(in rect: CGRect) {
let padding = UIEdgeInsets.init(top: topPadding, left: leftPadding, bottom: bottomPadding, right: rightPadding)
super.drawText(in: rect.inset(by: padding))
}
override var intrinsicContentSize: CGSize {
var contentSize = super.intrinsicContentSize
contentSize.width += self.leftPadding + self.rightPadding
contentSize.height += self.topPadding + self.bottomPadding
return contentSize
}
}
- CustomView 스토리보드 적용 참고 영상
728x90
반응형
'Develop > IOS' 카테고리의 다른 글
[IOS] Swift 종료 애니메이션 (0) | 2022.02.05 |
---|
댓글