为什么 `heightForRowAt` 在 `UITableViewDelegate` 而不是 `UITableViewDataSource` 中实现?
Why is `heightForRowAt` implemented in `UITableViewDelegate` and not `UITableViewDataSource`?
这个问题本质上更具教学意义,但为什么 heightForRowAt
在 UITableViewDelegate
而不是 UITableViewDataSource
中实现?
在 UITableViewDataSource
中定义行高不是更有意义吗?
由于行的高度应该取决于该特定行的内容,因此扩展到数据源?
Tableview 是一个非常复杂的视图,作为一个视图,它必须是可重用的。这只有在 table 视图的某些方面留给其他 类 时才能实现。 table 视图使用两个 类 委托和数据源。
数据源负责table中需要显示的数据。此数据来自 MVC 范式中的模型对象。
代表负责 table 应该如何代表自己。尽管行高是一条数据,可能会让您认为它应该是数据源的一种方法,但行高设置了 table 视图的布局项,因此设置了table 查看。
因此 heightForRowAt 是委托方法而不是数据源方法。
亲切的问候,
MacUserT
这个问题本质上更具教学意义,但为什么 heightForRowAt
在 UITableViewDelegate
而不是 UITableViewDataSource
中实现?
在 UITableViewDataSource
中定义行高不是更有意义吗?
由于行的高度应该取决于该特定行的内容,因此扩展到数据源?
Tableview 是一个非常复杂的视图,作为一个视图,它必须是可重用的。这只有在 table 视图的某些方面留给其他 类 时才能实现。 table 视图使用两个 类 委托和数据源。
数据源负责table中需要显示的数据。此数据来自 MVC 范式中的模型对象。
代表负责 table 应该如何代表自己。尽管行高是一条数据,可能会让您认为它应该是数据源的一种方法,但行高设置了 table 视图的布局项,因此设置了table 查看。
因此 heightForRowAt 是委托方法而不是数据源方法。
亲切的问候, MacUserT