ios - 为什么这个 IBDesignable 类不在情节提要上显示其更改?
问题描述
我有一个 UIButton 的 IBDesignable 子类,但我的更改没有出现在我使用它的情节提要上。我尝试刷新故事板上的所有视图,或将按钮与类重新链接,但无济于事。
班上:
@IBDesignable class MyButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
func commonInit() {
layer.cornerRadius = 3
layer.masksToBounds = true
backgroundColor = Colors.E9511C
setTitleColor(.white, for: .normal)
titleLabel?.font = Fonts.openSansBold(14)
}
}
解决方案
@IBDesignable 类 MyButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
@IBInspectable var borderColor: UIColor = UIColor.white {
didSet {
layer.borderColor = borderColor.cgColor
}
}
@IBInspectable var cornerRadius: Int = 1 {
didSet {
layer.cornerRadius = CGFloat(cornerRadius)
}
}
func commonInit() {
layer.cornerRadius = CGFloat(cornerRadius)
layer.masksToBounds = true
layer.borderColor = borderColor.cgColor
//layer.bobackgroundColor = backgroundColor.cgColor // Colors.E9511C
setTitleColor(.white, for: .normal)
titleLabel?.font = UIFont.systemFont(ofSize: 14) // Fonts.openSansBold(14)
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
commonInit()
}
}
推荐阅读
- ios - iOS - 接听电话时 AudioKit 崩溃
- python-3.x - python格式化问题解析子元素
- java - 从 SpringBoot 获取 protobuf 消息对象列表
- sql-server - Visual Studio 数据库项目参考
- java - com.googlecode.objectify.LoadException:时间戳超出范围错误
- azure - SignalR - 验证用户
- oauth-2.0 - Swagger:授权令牌未传递到请求标头中
- python - 如何从python中的整数生成列表?
- ruby-on-rails - 在 Rails 中寻找一个 gem,它维护特定模型的数据中所做的每个更改的版本
- css - Break-inside 不适用于材质 ui