【发布时间】:2018-03-29 07:02:00
【问题描述】:
我认为我在 UITableView 中重复使用单元格的方式遗漏了一些东西。
我有带有 TableView 的 ViewController 和带有自己的类和标识符的自定义单元格。在我使用的 cellForRowAt 方法中
let cell: MyCell = myTableView.dequeueReusableCell(withIdentifier: "MyCell", for: indexPath) as! MyCell
cell.objectForCell = myObject
它可以正常工作,我得到了带有单元格的 TableView。 我也有我传递给我的牢房的对象。在单元格内我有这个代码
var objectForCell : ObjectClass? {
didSet {
if let object = objectForCell {
someLabel.text = object.title
....
这也很好用。 但是如果我想给单元格添加一些子视图呢?例如,让它成为每个第三个单元格。当 TableView 出现时,我按预期在每个第三个单元格中看到我的子视图,但是当我开始向不同方向滚动时,为什么我在每个单元格中都有这个子视图?
var objectForCell : ObjectClass? {
didSet {
if let object = objectForCell {
someLabel.text = object.title
if object.id % 3 == 0 {
self.addSubview(......)
}
【问题讨论】:
-
只需将视图传递给单元格并在单元格类中将视图添加到
awakeFromNib方法中。 -
能否请您多描述一下现在发生了什么以及为什么 awakeFromNib 会更好?
-
您是否打算创建一个新视图并将其作为子视图添加到单元格中?还是它只是一个存在的视图,您想根据单元格的内容显示/隐藏它?
标签: ios objective-c swift uitableview addsubview