自定义控件设置属性并实时展现并预览在xib中

时间:2021-03-03 21:41:19

关键字:

// @IBDesignable:实时看到xib设置后的效果

// @IBInspectable:给xib提供设置属性,可以xib中看到此属性

场景:

自定义一个UITextField,并提供borderColor、borderWidth、cornerRadius三个属性;

要求:这三个属性能够展现在xib中,改变属性值,能实时预览效果。

1、我们先自定义类:

 import UIKit

 // @IBDesignable:实时看到xib设置后的效果
@IBDesignable
class YSTextField: UITextField { // @IBInspectable:给xib提供设置属性,可以xib中看到此属性
@IBInspectable var borderColor:UIColor?{
didSet{
self.layer.borderColor = borderColor?.cgColor
}
} // @IBInspectable:给xib提供设置属性,可以xib中看到此属性
@IBInspectable var borderWidth:CGFloat = {
didSet{
self.layer.borderWidth = borderWidth
}
} // @IBInspectable:给xib提供设置属性,可以xib中看到此属性
@IBInspectable var cornerRadius:CGFloat = {
didSet{
self.layer.cornerRadius = cornerRadius
self.layer.masksToBounds = true
}
}
}

2、新建一个xib,拖入一个UITextField,并把其类对应修改为我们刚自定义的类:YSTextField

3、在属性栏中我们就可以看到我们定义的属性了

自定义控件设置属性并实时展现并预览在xib中