Swift中的UIAppearance和圆角边框

eph*_*lip 3 exc-bad-access ios uiappearance swift

因此,对于整个UIAppearance方法进行处理并迅速进行处理,我还是一个新手。欢呼声中没有大量的文档资料。

我正在尝试通过UIAppearance设置边框半径,其中包括:

CircleButton.appearance.roundBorderRadius = 9
Run Code Online (Sandbox Code Playgroud)

我的CircleButton类实现:

public class CircleButton : UIButton{
     @nonobjc var roundBorderRadius: CGFloat? {
        get { return self.layer.cornerRadius }
        set {
            self.layer.cornerRadius = newValue!
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我将情节提要中的所有内容都连接到包含CircleButton的ViewController。没有编译或生成错误。

但是,在运行时我得到了:

在以下位置出现“线程1:EXC_BAD_ACCESS”错误:

CircleButton.appearance.roundBorderRadius = 9
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

Tyl*_*ler 5

删除@nonobjc和添加dynamic,然后更改从类型CGFloat?CGFloat并删除!之后newValue的二传手,像这样:

public class CircleButton: UIButton {

    dynamic var roundBorderRadius: CGFloat {
        get { 
            return layer.cornerRadius
        }

        set {
            layer.cornerRadius = newValue
        }
    }
}
Run Code Online (Sandbox Code Playgroud)