一般Swift UIButton都有imageEdgeInsets或是titleEdgeInsets可以設置
但UILabel就沒這種內建函式可以用
這時候如果需要設置內邊距的話可以這樣做
新增UILabel檔案
UIEdgeInsets 上下設置2的距離
避免部分文字跑版
UILabelPadding.swift
class UILabelPadding: UILabel {
let padding = UIEdgeInsets(top: 2, left: 0, bottom: 2, right: 0)
override func drawText(in rect: CGRect) {
super.drawText(in: rect.inset(by: padding))
}
override var intrinsicContentSize : CGSize {
let superContentSize = super.intrinsicContentSize
let width = superContentSize.width + padding.left + padding.right
let heigth = superContentSize.height + padding.top + padding.bottom
return CGSize(width: width, height: heigth)
}
}
繼承
將Xib或是UILabel直接繼承UILabelPadding.swift
DEMO
Swift更多文章
Swift 彈出視窗 AlertController 的使用方法 💥
Swift UISegmentedControl 💻分段控制器!