将单个数组值分配给iPhone中的不同部分

时间:2010-12-27 13:05:53

标签: iphone uitableview

我有一个数组(resultArray),里面有21项数据。我想将它显示在具有不同行数的8个分段表中。

如何在所有行中正确分配值? indexpath.row和section.row都给出了错误的值。如何将单个数组值分配给具有更多部分的分组表?

2 个答案:

答案 0 :(得分:1)

由您决定将数据模型映射到表格视图,您可以按照自己的方式进行操作。如果你有一个扁平的项目数组并希望将它们映射到表格视图的不同部分,你必须知道结果数据的哪些偏移进入表格的哪些部分,但没有人可以自动为你做这些,因为只有你知道数据的语义。您需要一些代码来获取section和row索引,并确定需要返回结果数组中的哪个索引。

如果它始终是21个项目并且总是相同的映射,那么在表格或大量if语句中对映射进行硬编码可能就好了。如果它是动态的,那么你需要一些其他的后备映射表,具体取决于你想要映射的方式。

最后,正如@iPortable建议的那样,您还可以找到一种方法来适当地构建结果数据,这使得控制器逻辑变得简单,具体取决于您的数据。

答案 1 :(得分:0)

我会为此创建一个多层数组。第一级是部分计数,第二级是行。该数组看起来像这样:

resultArray{
    1 = {
        1 = first row in first section,
        2 = second row in first section
    },
    2 = {
        1 = first row in second section,
        2 = second row in second section
    }
}

然后您从cellForRowAtIndexPath:中的数组中获取值,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSArray *sectionArray = [returnArray objectAtIndex:indexPath.section];
    cell = [sectionArray objectAtIndex:indexPath.row];
}