cellForRowAtIndexPath未被调用所需的次数

时间:2012-07-11 05:30:15

标签: iphone objective-c ios uitableview

我想要实现的功能是,首先我在UITableView中显示两行,显示完美。然后在didSelectRowAtIndexpath:上,我在numberOfRows中添加UITableView,我在添加UITableView和所需数据后重新加载numberOfRows。 / p>

我的问题是我传递了numberOfRowsInSection:中的新行数(我已经检查过,它正确传递)但是cellForRowAtIndexpath:之后只调用了两次,这是之前的numberOfRows值。

我的代码:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.currentSubCategoryRows;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
   // My code for cell construction goes here
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   [self.arrWithAdditionalValues addObjectsFromArray:[self.dictSubCategoriesLevel3 objectForKey:[NSString stringWithFormat:@"%d",rowOpened]]];
   self.currentSubCategoryRows += self.arrWithAdditionalValues.count;
            [tableView reloadData];
}

可能是什么原因?

任何帮助将不胜感激!!!

3 个答案:

答案 0 :(得分:5)

我找到了解决方案。

当我根据UITableView中的行数调整cellForRowAtIndexPath:的大小时,这就是为什么UITableView的下一部分不可见,以及UITableView部分的原因1}}不可见,cellForRowAtIndexPath:永远不会被调用。

很抱歉打扰你们所有人。

非常感谢你的帮助!!!

答案 1 :(得分:4)

cellForRowAtIndexPath:仅在绘图时需要立即调用。您必须构建该方法,而不必控制何时调用它。

答案 2 :(得分:2)

尝试在viewWillAppear

中重新加载表格
- (void)viewWillAppear:(BOOL)animated {
    [tableview reloadData];
    }