본문 바로가기
Develop/IOS

[IOS] Swift UILabel Padding

by 알려 2022. 1. 30.
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

댓글