Swift 中的 UIAppearance 和圆角边框
UIAppearance and Rounded Borders in Swift
所以我对整个 UIAppearance 做事的方法以及使用 swift 做事还很陌生。万岁没有大量的文件。
我正在尝试通过 UIAppearance 设置我的边框半径,其中的内容如下:
CircleButton.appearance.roundBorderRadius = 9
我的 CircleButton class 实现:
public class CircleButton : UIButton{
@nonobjc var roundBorderRadius: CGFloat? {
get { return self.layer.cornerRadius }
set {
self.layer.cornerRadius = newValue!
}
}
}
我将 Storyboard 中的所有内容都连接到包含 CircleButton 的 ViewController。没有编译或构建错误。
但是,在运行时我得到:
"Thread 1: EXC_BAD_ACCESS" 错误:
CircleButton.appearance.roundBorderRadius = 9
有什么建议吗?
删除@nonobjc
并添加dynamic
,然后将类型从CGFloat?
更改为CGFloat
并删除newValue
之后的!
setter,像这样:
public class CircleButton: UIButton {
dynamic var roundBorderRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
}
}
}
所以我对整个 UIAppearance 做事的方法以及使用 swift 做事还很陌生。万岁没有大量的文件。
我正在尝试通过 UIAppearance 设置我的边框半径,其中的内容如下:
CircleButton.appearance.roundBorderRadius = 9
我的 CircleButton class 实现:
public class CircleButton : UIButton{
@nonobjc var roundBorderRadius: CGFloat? {
get { return self.layer.cornerRadius }
set {
self.layer.cornerRadius = newValue!
}
}
}
我将 Storyboard 中的所有内容都连接到包含 CircleButton 的 ViewController。没有编译或构建错误。
但是,在运行时我得到:
"Thread 1: EXC_BAD_ACCESS" 错误:
CircleButton.appearance.roundBorderRadius = 9
有什么建议吗?
删除@nonobjc
并添加dynamic
,然后将类型从CGFloat?
更改为CGFloat
并删除newValue
之后的!
setter,像这样:
public class CircleButton: UIButton {
dynamic var roundBorderRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
}
}
}