我在测验中发现一个问题是“哪个UIKit协议包含方法-tableView:heightForRowAtIndexPath:?”
没有任何负载,我想到的协议是 UITableViewDataSource 。但是当我检查苹果开发者文档时,我发现我错了。 UITableViewDelegate 是包含该方法的协议。
在此之前,我理解这些高度方法是数据源协议的一部分。
将它们放在UITableViewDelegate而不是UITableViewDataSource中是否有任何特定原因?
为什么将以下功能放在 UITableViewDelegate
中以及为什么以下函数放在 UITableViewDataSource
中在此之前,我认为这些是相似类型的功能,因此这些方法必须放在相同的协议中。
请告诉我。
提前致谢
答案 0 :(得分:6)
UITableViewDelegate 表示您提供有关表格布局的请求以及用户在tableview上执行的操作的答案。
UITableViewDatasource 表示您为表的节和行提供数据,并对您更改表格数据的消息采取行动。
有关详情,请查看DataSource和Delegate
答案 1 :(得分:5)
numberOfSectionsInTableView
和numberOfRowsInSection
是回答有关要显示的数据的问题的函数,这就是为什么它们可以在 DataSource协议中找到。
heightFor...
函数不回答有关基础数据的任何内容,而只回答数据显示方式。这就是为什么他们是代表协议的一部分。
这对你有意义吗?
答案 2 :(得分:0)
答案 3 :(得分:0)
tempDir
的{{1}}潜在客户由UI
方法和UITableView
提供(我们不是在{{1}内讨论要使用的数据,UITableViewDelgate
方法提供构建data
所需的cell
(UI
,section
等)重复信息。< / p>