我知道这可能是一个愚蠢的问题,但在设计方面,为什么 Apple 将这两种方法放在不同的协议(protocol)中?
类和单元格的高度怎么可能是不同的职责呢?
最佳答案
它不是类和高度,而是内容(又名数据源)和高度(UITableView 委托(delegate)的一部分)。
举个简单的例子,假设您有 UITableviewCell 的子类,并在您的自定义类中定义所有标签和内容。 使用 cellForRowAtIndexPath 唯一要做的就是插入数据源并填充单元格的每个元素。
HeightForRowAtIndexPath 只是更大的 UITableView 委托(delegate)的一小部分,它更多地是关于处理单元格上的操作(选择、取消选择、编辑)而不是 ui。
虽然文档对此很清楚: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDataSource_Protocol/ https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/
一个是代表,另一个不是。
关于ios - 为什么 tableView :cellForRowAtIndexPath: and tableView:heightForRowAtIndexPath: do not belong to the same protocol?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35010909/