我有一个基本的表格 View ,它显示来自多个数组的数据。
我的问题是,tableview 需要知道它要显示多少个单元格,因此 numberOfRowsInSection
方法允许您指定它。
在我返回的 numberOfRowsInSection
方法中:
return [data_array count];
但是,我觉得这是错误的。因为假设 data_array
有 100 个项目(0 到 99),那么 [data_array count]
会返回 100 吗?
如果是这样,我说我真的需要做以下事情是对的:
return ([data_array count] - 1);
通过执行上述操作,我确保不会出现 outOfBounds
错误。
我是正确的还是我在这里开始愚蠢?
最佳答案
其实你的方式是正确的。如果你有一个数组 [0-99],那实际上是 100 个项目。您需要 100 行来显示所有这些信息。
numberOfRowsInSection
方法需要行数,而不是数组的基于 0 的索引。
您实际访问此数据的区域在 cellForRowAtIndexPath
中。这是您获取基于 0 的 indexPath 的位置,它将让您知道将哪个索引用于数据。
例子:
如果您的数组是 @[@"1", @"2", @"3", @"4", @"5"]
您有 5 个项目,因此需要 5 行来显示它们。
numberOfRowsInSection
应该返回 [array count]
,即 5。
cellForRowAtIndexPath
将为您提供 0 索引值,因此您可以:
NSString *currentData = array[indexPath.row];
indexPath.row
的值是 0-4,所以没有 outOfBound 错误
关于ios - 指定 UITableView 中的项目数 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22204972/