Paw*_*wan 2 iphone uibutton uiview ios swift
我已经将自定义UIButton编码为:
class AccountOpeningButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
......
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用我的故事板成功实例化该类。现在,我做了一个UIView并想在我的UIView中添加此按钮为:
var customView:UIView = UIView()
customView.frame = CGRect(x: 0, y: 0, width: 350, height: 250)
.....
let fromDateBtn:UIButton = AccountOpeningButton()//Error comes here as : Missing Argument for parameter ‘coder’ in call
customView.addSubview(fromDateBtn)
Run Code Online (Sandbox Code Playgroud)
因此,也请帮助动态地重用此代码。
PS:我提到了http://napora.org/nscoder-and-swift-initialization/ 致命错误:对类 Class 使用未实现的初始化器“ init(coder :)” 无法实现其超类的必需成员 ,但未成功。
================================================== ==================== 尝试
let fromDateBtn:UIButton = UIButton() as! AccountOpeningButton
Run Code Online (Sandbox Code Playgroud)
这将引发CastException 无法将类型为'UIButton'的值转换为'.AccountOpeningButton'
替换此行
let fromDateBtn:UIButton = AccountOpeningButton()
Run Code Online (Sandbox Code Playgroud)
有了这个:
let fromDateBtn = AccountOpeningButton()
Run Code Online (Sandbox Code Playgroud)
并在您的课程中添加此方法
override init(frame: CGRect) {
super.init(frame: frame)
}
Run Code Online (Sandbox Code Playgroud)
您可以具有多个init方法,但是必须遵守继承和层次结构规则。您必须明确了解什么是便捷初始化器。
有关更多详细信息,请单击此处
| 归档时间: |
|
| 查看次数: |
5433 次 |
| 最近记录: |