因此,对于整个UIAppearance方法进行处理并迅速进行处理,我还是一个新手。在那里没有很多文档。
我正在尝试通过UIAppearance设置边框半径,其中包括:
CircleButton.appearance.roundBorderRadius = 9
我的CircleButton类实现:
public class CircleButton : UIButton{
@nonobjc var roundBorderRadius: CGFloat? {
get { return self.layer.cornerRadius }
set {
self.layer.cornerRadius = newValue!
}
}
}
然后,我将情节提要中的所有内容都连接到包含CircleButton的ViewController。没有编译或生成错误。
但是,在运行时我得到了:
在以下位置出现“线程1:EXC_BAD_ACCESS”错误:
CircleButton.appearance.roundBorderRadius = 9
有什么建议吗?
最佳答案
删除@nonobjc
并添加dynamic
,然后将类型从CGFloat?
更改为CGFloat
,并在设置器中的!
之后删除newValue
,如下所示:
public class CircleButton: UIButton {
dynamic var roundBorderRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
}
}
}