试图对UIButton
进行子类化,但出现错误必须调用超类 'UIButton' 的指定初始化程序
。
查阅了几篇Stack Overflow帖子像这样的,这个,这个或其他几个都没有帮助,因为这些解决方案不起作用。
我们如何在Swift中对UIButton
进行子类化并定义自定义init函数呢?
import UIKit
class KeyboardButton : UIButton {
var letter = ""
var viewController:CustomViewController?
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
init(letter: String, viewController: CustomViewController) {
super.init()
...
}
}
super.init()
因为它不是指定的初始化程序。您需要调用super.init(frame:frame)
,这意味着您需要向初始化程序提供一个框架。话虽如此,这看起来相当糟糕。您应该实现委托模式,而不是向初始化程序提供视图控制器。 - Paulw11