为什么tableView:cellForRowAtIndexPath:和tableView:heightForRowAtIndexPath:不属于同一个协议?

时间:2016-01-26 09:47:49

标签: ios objective-c swift uitableview protocols

我知道这可能是一个愚蠢的问题,但在设计方面,为什么Apple将这两种方法放在不同的协议中?

小组的班级和高度如何能够承担不同的责任?

1 个答案:

答案 0 :(得分:0)

它不是类和高度,它是内容(也称为数据源)和高度(UITableView委托的一部分)。

举一个简单的例子,假设您有子类UITableviewCell并在自定义类中定义所有标签和内容。 与cellForRowAtIndexPath唯一要做的就是插入数据源并填充单元格的每个元素。

HeightForRowAtIndexPath只是更大的UITableView委托的一小部分,它更多地是关于处理单元格上的操作(选择,取消选择,编辑)而不是ui。

虽然文档很清楚: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDataSource_Protocol/ https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/

一个是代表,另一个不代表。