子类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调用时初始化的主要内容,如果未能解决你的问题,请参考以下文章
Swift 设置子类 UIButton ButtonType
UIButton 子类忽略“Touch Up Inside”事件