gpt4 book ai didi

swift - 覆盖 init(coder aDecoder : NSCoder!) 没有像预期的那样工作 - Swift

转载 作者:搜寻专家 更新时间:2023-10-31 22:00:55 25 4
gpt4 key购买 nike

我正在尝试在 Swift 中子类化 UITableViewCell。

我已经试过了:

class CUISwitchTableViewCell: UITableViewCell {

var label = UILabel()
var switchControl = UISwitch()

init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)

// Set up UI
}
}

但是在调用 super.init(coder: aDecoder) 时出现编译错误:

Must call a designated initializer of the superclass 'UITableViewCell'

所以我的理解是我必须调用 init(style: UITableViewCellStyle, reuseIdentifier: String!),但是我将丢失在 Interface Builder 中所做的所有设置。如果我不覆盖 initWithCoder,我应该在哪里设置我的 View ?

最佳答案

如果您想设置您的 View ,或对使用界面生成器存档的对象执行任何自定义初始化,您可以通过覆盖 awakeFromNib 来实现。使用界面生成器创建的每个对象在从 Nib 取消存档时都会调用此方法。覆盖此方法还将使您的界面构建器设置保持不变。

关于swift - 覆盖 init(coder aDecoder : NSCoder!) 没有像预期的那样工作 - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24840705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com