所以我从来不知道 titleForHeaderInSection 和基本上分组的 UITableView 是如何工作的。我放弃了尝试创建一个并最终暂时使用普通列表。如果可以解释以下任何一点,我将不胜感激:
理解它...
如果我想要一个分组的 UITableView,我知道我需要使用 numberOfSectionsInTableView 返回我想要的组(部分)。说,返回 3。
然后我需要返回每个不同部分中的行数,对吗?我可以在 numberOfRowsInSection 中做到这一点。比如说,第一部分返回 2,第二部分返回 4,第三部分返回 6,对吗?
如果我希望每个部分都有不同的标题,我需要使用 titleForHeaderInSection,但我觉得使用起来很棘手。但是,似乎我只需要获取节整数并使用 objectAtIndex 将标题设置为节的数组,对吗?
在 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、概念、机制。
是的,我已经搜索了所有内容,但没有找到与我面临同样问题的人。