0

所以我从来不知道 titleForHeaderInSection 和基本上分组的 UITableView 是如何工作的。我放弃了尝试创建一个并最终暂时使用普通列表。如果可以解释以下任何一点,我将不胜感激:

理解它...

  1. 如果我想要一个分组的 UITableView,我知道我需要使用 numberOfSectionsInTableView 返回我想要的组(部分)。说,返回 3。

  2. 然后我需要返回每个不同部分中的行数,对吗?我可以在 numberOfRowsInSection 中做到这一点。比如说,第一部分返回 2,第二部分返回 4,第三部分返回 6,对吗?

  3. 如果我希望每个部分都有不同的标题,我需要使用 titleForHeaderInSection,但我觉得使用起来很棘手。但是,似乎我只需要获取节整数并使用 objectAtIndex 将标题设置为节的数组,对吗?

  4. 在 cellForRowAtIndexPath 中,我是否需要对部分或如何显示单元格做任何事情?好像没有,但我不确定...

问题

我的数据的结构是这样的(它是一个 JSON 数组,每个数组条目中都包含字典):

ArrayItemOne
    DictionaryKeyOne:DictionaryValueOne
    DictionaryKeyTwo:DictionaryValueTwo
ArrayItemTwo
    DictionaryKeyOne:DictionaryValueOne
    DictionaryKeyTwo:DictionaryValueTwo
ArrayItemThree
    DictionaryKeyOne:DictionaryValueOne
    DictionaryKeyTwo:DictionaryValueTwo

我的部分标题实际上是上面所有3个ArrayItemFoo的DictionaryValueTwo,它是动态的,我不知道今天或明天会有多少,它来自JSON。然后我创建了一组独特的并计算它。那是我的 numberOfSectionsInTableView。

但是,只有当它们的 DictionaryValueTwo 与部分标题匹配时,我才能在每个不同部分中按此 DictionaryValueTwo 对我的行进行分组?现在我无法控制每个部分中的行,这很混乱,我很困惑。

想象一下:所有事件都有一个日期,我的部分是不重复的事件日期,但我的事件只需要显示在与其日期匹配的部分中。就是这样。我太愚蠢了,无法理解分组 UITableView 是如何工作的......

我的代码

我已经使用普通列表编写了 UITableView,它有一些用于分组列表的注释掉的东西,如果它有助于理解我的问题:http: //github.com/caio1982/CorreCuritiba/blob/master/iOS/CorreCuritiba/CorreCuritiba/ CCMasterViewController.m

再说一遍:一些示例解释的代码会很棒,但这不是强制性的,我真的很想了解分组的 UITableViews、概念、机制。

是的,我已经搜索了所有内容,但没有找到与我面临同样问题的人。

4

2 回答 2

0

这很有帮助。

iPhone JSON 到 TableView

诀窍是将每个数组项视为一个部分。

于 2012-10-17T14:50:51.793 回答
0

Gustavo Boiko 的补丁很好地解释了它应该如何工作。毕竟我的数据结构是错误的:https ://github.com/caio1982/CorreCuritiba/pull/3

于 2012-10-22T10:19:50.667 回答