iPhone:UITableView部分

时间:2012-02-29 12:39:41

标签: iphone uitableview

我有一个包含部分的表格视图。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        return numberHigherThen0;
}
在cellForRowAtIndexPath方法中的

我根据

部分设置我的行
- (UITableViewCell *)tableView:(UITableView *)aTableView
        cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   if (0 == indexPath.section) {
       //setup rows
   } esle {
     //setup rows
   }
}

部分中的部分和行数会动态变化。但是部分的数量总是>所以在cellForRowAtIndexPath indexPath.section == 0中总会有这种情况,对吧?但有些时候cellForRowAtIndexPath没有传递case index.section == 0!为什么?什么时候可以呢?当cellForRowAtIndexPath可以从1开始计算节?

更新:  第2节没有行

2 个答案:

答案 0 :(得分:1)

numberOfSectionsInTableView:中指定部分的数量 - 但是,这些部分的编号为 0

因此,如果你在 numberOfSectionsInTableView 中返回3,你将有三个部分 - 第0部分,第1部分和第2部分。

答案 1 :(得分:0)

仅当表视图需要刷新给定索引路径的单元格时,才会调用

tableView:cellForRowAtIndexPath:

因此,如果您的应用程序启动时第0部分可见,是的,您应该至少拨打一次部分== 0的电话。在后续刷新中,如果UITableView认为不需要刷新它,则可能会跳过第0部分。这可能就是你所看到的。

使用reloadRowsAtIndexPaths:withRowAnimation:reloadSections:withRowAnimation:等告诉UITableView行已更改且需要刷新它。