ios - 指定 UITableView 中的项目数 - iOS

标签 ios objective-c uitableview nsarray

我有一个基本的表格 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/

相关文章:

ios - UICollectionView - Swift4 在不同部分的多选和单选

ios - 优化苹果系统日志

ios - 联系人信息样式 TableView

iphone - 如何使用 NSOrderedSet 的顺序对 NSFetchedResultsController 的结果进行排序

ios - 检查弃用警告和新方法

objective-c - UIImageView 子类中的自定义初始值设定项 - 是否有必要覆盖 initWithImage 或 initWithFrame 初始值设定项?

iphone - 编码 C 风格的整数数组

ios - CollectionCell 显示错误的图像?

ios - UITableview 的触摸事件

html - 即使没有指定,网站也仅在 ios 上显示背景图像?