In Storyboard I have UITextField
, I also created custom class:
class WLTextField: UITextField {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
layer.cornerRadius = 2
layer.masksToBounds = true
layer.borderColor = UIColor.grayColor().CGColor
layer.borderWidth = 1
}
}
Then attached this class to my UITextField
:
But, there is no result for this in Storyboard. How can I achieve this? I need to get such effect like it is with @IBDesignables
. But since I know what I need to set up for every text field, I do not need set a value and then update this within didSet
.
Do I need to set at least one value to make changes live in Storyboard on some UIView?
In order for a component to render in the Interface Builder you must flag the class as @IBDesignable
and you must implement the initialise init(frame: CGRect)
-
@IBDesignable class WLTextField: UITextField {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupLayer()
}
required override init(frame: CGRect) {
super.init(frame: frame)
setupLayer()
}
func setupLayer () {
layer.cornerRadius = 2
layer.masksToBounds = true
layer.borderColor = UIColor.grayColor().CGColor
layer.borderWidth = 1
}
}