因此,我对整个UIAppearance处理方法相当陌生,并且使用swift进行操作。华友世纪没有那么多文件。
我试图通过UIAppearance设置我的边界半径:
CircleButton.appearance.roundBorderRadius = 9
我的CircleButton类实现:
public class CircleButton : UIButton{
@nonobjc var roundBorderRadius: CGFloat? {
get { return self.layer.cornerRadius }
set {
self.layer.cornerRadius = newValue!
}
}
}
我将Storyboard中的所有内容挂钩到包含CircleButton的ViewController。没有编译或构建错误。
然而,在运行时我得到了:
"线程1:EXC_BAD_ACCESS"错误:
CircleButton.appearance.roundBorderRadius = 9
有什么建议吗?
答案 0 :(得分:4)
移除@nonobjc
并添加dynamic
,然后将类型从CGFloat?
更改为CGFloat
,并移除设置者中!
之后的newValue
,像这样:
public class CircleButton: UIButton {
dynamic var roundBorderRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
}
}
}