我正在从一组不同的继承类创建一个tableView,但是我似乎无法找到将它们全部添加到tableView中的最佳方法,而不需要创建多个数组,这并不理想。
例如,让我们以一个经典的例子为例,我如何能够在一个tableView中添加多个不同的猫和狗对象?做这件事最好的方法是什么?
class Pet {
var id: Int = 0
var name: String = ""
}
class Dog: Pet {
var Type: String = ""
}
class Cat: Pet {
var Type: String = ""
}
发布于 2015-09-27 09:33:23
最简单的方法是在UI层中反映模型。比如:
class PetTableViewCell {
}
class DogTableViewCell: PetTableViewCell {
}
class CatTableViewCell: PetTableViewCell {
}
然后在表视图中使用它们:this answer显示了在UITableView
中使用两种不同的单元格类型
另一种方法是定义一个协议,该协议描述需要在单元格中显示的模型类的行为,并在模型类中实现它(或继承它)。
protocol MyTableViewCellDisplayable {
var Type: String
var Pic: Image
var Name: String
}
class MyTableViewCell {
func displayObject(obj: MyTableViewCellDisplayable);
}
class Pet: MyTableViewCellDisplayable {
}
class Dog: Pet {
}
class Cat: Pet {
}
...
正确的解决方案的选择实际上取决于您的特定需求。
https://stackoverflow.com/questions/32806322
复制相似问题