Joh*_*kon 7 uitableview subclassing tablecell ios swift
我遇到了简单的问题,无法找到任何解决方案.
MyCell.xib有文件所有者MyCell : UITableViewCell类.
我这样用它:
viewDidLoad方法:
let nib = UINib(nibName: "MyCell", bundle: nil)
self.tableView.register(nib, forCellReuseIdentifier: "myIdentifier")
Run Code Online (Sandbox Code Playgroud)
tableView cellForRowAt方法:
let cell = tableView.dequeueReusableCell(withIdentifier: "myIdentifier", for: indexPath) as? MyCell
Run Code Online (Sandbox Code Playgroud)
它运作良好.
我将我的类子类化为添加一些新方法:
class SuperCell : MyCell {
func coolMethod {
print("cool")
}
}
Run Code Online (Sandbox Code Playgroud)
并尝试使用它:
let cell = tableView.dequeueReusableCell(withIdentifier: "myIdentifier", for: indexPath) as? SuperCell
Run Code Online (Sandbox Code Playgroud)
它返回 nil
我怎样才能使它工作?
我尝试在InterfaceBuilder中使用标识符myIdentifier和类创建原型单元格SuperCell,但它没有帮助.
我只想对不同的单元类使用相同的视图(xib).
在我的情况下,我有MyCell视图(xib)的公共cell().MyCell完全描述字段(IBOutlets).此外,我想创建一些子类的另一个单元类MyCell,但它们将提供这些IBOutlet的一些行为.例如,FirstMyCell : MyCell将有方法setFieldsFrom(objectOne: ObjectOne),SecondMyCell : MyCell并将有另一种方法setFieldsFrom(anotherObject: ObjectAnother).
当然,我可以将这两种方法添加到我的MyCell课程中,但它会是不洁净的.
| 归档时间: |
|
| 查看次数: |
1153 次 |
| 最近记录: |