gpt4 book ai didi

ios - 如何子类化自定义 UITableViewCell?

转载 作者:行者123 更新时间:2023-11-30 13:33:04 28 4
gpt4 key购买 nike

我正在尝试使用 3 个不同的自定义 UITableViewCell 创建一个 UITableView。它们都共享一些通用元素,例如称为 questionLabelUILabel

我有三种类型的细胞

  • OneTextFieldTableViewCell
  • TwoLabelTableViewCell
  • ThreeLabelTableViewCell

我希望这些单元格继承自 FormTableViewCell,它们共享常见的 UI 元素,例如上面提到的 questionLabel

代码:

class OneTextFieldTableViewCell: FormItemTableViewCell {

@IBOutlet weak var questionLabel: UILabel!
@IBOutlet weak var answerTextField: UITextField!

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

// Configure the view for the selected state
}

}

FormItemTableViewCell

class FormItemTableViewCell: UITableViewCell {

@IBOutlet weak var questionLabel: UILabel!

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

// Configure the view for the selected state
}

}

我收到错误:

Cannot override with a stored property 'questionLabel'

Getter for 'questionLabel' with Objective-C selector 'questionLabel' conflicts with getter for 'questionLabel' from superclass 'FormItemTableViewCell' with the same Objective-C selector

Setter for 'questionLabel' with Objective-C selector 'setQuestionLabel:' conflicts with setter for 'questionLabel' from superclass 'FormItemTableViewCell' with the same Objective-C selector

最佳答案

您的变量questionLabel已在您的父类(super class)中定义。无需再提。这就是继承的全部意义。您的子类继承其父类(super class)的变量。

IBOutlet、IBAction、IBDesignable 只是标签。将它们添加到继承树中的哪个位置并不重要。一旦到达那里,您就已经通知编译器/Xcode这是一个“特殊”函数或变量。

因此,如果您的类有一个函数 @IBAction func doStuff() ,您可以将其重写为 override func doStuff() ,并且仍然从 IB 内部连接到它。如果您想添加 willSetdidSet 或替换 getter/setter 函数,则与重写 IBOutlet 相同。

关于ios - 如何子类化自定义 UITableViewCell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36365038/

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