数ヶ月前に、字間に対応したUILabelの実装について書きましたが、今回はそれの延長です。
http://qiita.com/sutchan/items/5fb089fabfefdd0e821c
今回は、角丸の枠線を持った、UILabelを実装します。
実装
まずは、UILabelを継承した独自クラスを実装します。(Extensionで実装できるかなと思ったけどだめだった)
なお、Swift 2.3の場合の実装です。他では試してません
import UIKit
@IBDesignable
class BorderLabel: UILabel {
@IBInspectable var borderColor: UIColor = UIColor.blackColor() {
didSet{
layer.borderColor = borderColor.CGColor
}
}
@IBInspectable var borderWidth: CGFloat = 1.0 {
didSet{
layer.borderWidth = borderWidth
}
}
@IBInspectable var cornerRadius: CGFloat = 0.0 {
didSet{
layer.cornerRadius = cornerRadius
}
}
}
今回は、ボーダーの色、幅、角丸を、Interface Builderから指定できるようにしました。
なお、IBInspectableで色を指定する場合、型はUIColorです。borderColorに色を代入する際には、CGColorにする必要があるので注意です。
ボーダーを付けたいUILabelに、実装したクラスを指定
Attributes inspectorで各値が指定できる
完成!!
Interface Builderでも、指定した結果が確認できるから、実装しやすいですね!!