如果我UITableViewCell
将 a 子类化,实际上写出一个子类或使用该tableView:cellForRowAtIndexPath:
方法并将我的子视图添加到默认值是更好的做法UITableViewCell contentView
吗?
2 回答
这取决于,
如果您不打算在任何其他表中重用该单元格,您可能希望在您的UITableViewController
子类中对其进行自定义。但是,这仍然不是一个好的做法,因为您可能会更改更多的委托方法,例如cellForRowAtIndexPath
or heightForRowAtIndexPath
。
如果你要重用那个单元格,你应该子类化UITableViewCell
.
对于静态视图(列表中一些众所周知的元素),具有许多不同的异构元素(例如设置分组菜单),可以更容易(或更快)在 中进行自定义UITableViewController
,而不是继承许多不同样式的细胞。
我认为在子类化和向 contentView 添加子视图之间进行选择取决于您想要自定义单元格的程度。如果您只是想添加几个额外的子视图,第二种方法可能很好。如果你想花哨并为 setSelected:animated:、setHighlighted:animated: 和 setEditing:animated: 创建自定义动画,你显然必须子类化。这个主题在 Apple 的文档中有所介绍:http: //developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7- SW1
此外,无论您使用哪种技术自定义单元格,都会调用 tableView:cellForRowAtIndexPath:。