子类UIButton:属性未在super.init调用时初始化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子类UIButton:属性未在super.init调用时初始化相关的知识,希望对你有一定的参考价值。

我正在尝试子类化UIButton,所以我可以对它们进行自定义动画,但我遇到了init问题

属性'self.originalWidth'未在super.init调用时初始化

这是我的代码:

   import UIKit

enum ButtonType {
    case newGameButton
    case showStatsButton
    case addTeamButton
    case addUserButton
}

class LSS_Button: UIButton {

    var myButtonType:ButtonType?
    var originalWidth:CGFloat
    var originalHeight:CGFloat


    required init?(coder aDecoder: NSCoder) {
       fatalError("Something went terribly wrong with init on LSS_Button")
    }


    override init(frame: CGRect) {

        super.init(frame: frame)

        self.originalWidth = self.frame.size.width
        self.originalHeight = self.frame.size.height
    }

我该如何解决这个问题?提前致谢。

忘记添加,如果我把self.originalWidth = ...放在super.init上面,那么我得到这个错误:

在super.init电话之前使用'self'

答案

该死,5秒后想出来:

override init(frame: CGRect) {


    self.originalWidth = frame.size.width
    self.originalHeight = frame.size.height        

     super.init(frame: frame)


}

以上是关于子类UIButton:属性未在super.init调用时初始化的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 UIButton 的子类中设置约束?

Swift 设置子类 UIButton ButtonType

UIButton 子类忽略“Touch Up Inside”事件

自定义 UIButton 没有点击效果

属性标题未在 xib 文件的 UIButton 中加载自定义字体

向UIButton添加左右填充