iPhone UITableView 从平面数组填充可变行部分

Posted

技术标签:

【中文标题】iPhone UITableView 从平面数组填充可变行部分【英文标题】:iPhone UITableView populating variable rows sections from flat array 【发布时间】:2010-05-29 12:31:11 【问题描述】:

我认为这将是一个非常常见和简单的 iPhone 应用程序。在我连接到数据库的主应用程序中,从数据库中检索值(NSDate 转换为 NSString)n 并放入单个数组中。然后在其中一个视图中,我使用数组中的元素填充 UITableView。 UITableView 被分组(部分)。我逐步遍历数组以发现部分的数量(如果新的一天则更改部分)。如何在 cellForRowAtIndexPath 中检索正确的数组元素? IndexPath.section 和 IndexPath.row 似乎没用,因为每个部分的行从零开始计数。如果每个部分的行数相同,那就很容易了:

[arryData objectAtIndex:(indexPath.row)+indexPath.section*[tblMatchesView numberOfRowsInSection:indexPath.section]];

但每个部分的行数各不相同... :-)

【问题讨论】:

【参考方案1】:

从数据库中获取数据后,将数据分成数组数组(基于不同天数),这将是最简单的解决方案...

【讨论】:

谢谢伊万斯。我试图避免它。我不敢相信 iPhone SDK 没有绝对光标(它知道已经填充的部分和行数......)。【参考方案2】:

如何将不同的日期部分存储在不同的数组中?例如,您可以有一个数组 A 的数组。您可以自己循环遍历原始数组,如果您发现了新的一天,您只需创建一个新数组并将其放入数组 A 中。然后,当您遍历单元格时,您可以获得节号以获得正确的数组并根据行号获取数组中正确的元素

【讨论】:

谢谢。这也是 Ivans 的建议(数组数组)。我以为我只是错过了文档中的某些内容,但看起来它缺少绝对光标。哦,好吧,无论如何,谢谢。【参考方案3】:

它没有绝对光标,但你可以尝试使用 UILocalizedIndexedCollat​​ion 类,用于简化数据的“分段”并证明 tableView 委托功能所需的数据,例如索引标题等

这是它的苹果文档链接: https://developer.apple.com/library/ios/#documentation/iPhone/Reference/UILocalizedIndexedCollation_Class/UILocalizedIndexedCollation.html#//apple_ref/occ/cl/UILocalizedIndexedCollation

【讨论】:

以上是关于iPhone UITableView 从平面数组填充可变行部分的主要内容,如果未能解决你的问题,请参考以下文章

iPhone UITableView 从 connectionDidFinishLoading 填充

为啥 UITableView 不从数组中填充

如何从 UITableView iphone 获取 UITableView IndexPath?

UITableView 从 NSMutableArray / NSDictionary 循环输出数据

如何从 UITableView (iPhone/iPad) 中删除部分

在 iPhone 上使用 UITableView Outlet 从 UIViewController 修改 UITableViewCell