重新加载UITableView单元格高度和内容

时间:2014-08-06 12:32:11

标签: objective-c uitableview

我试图重新加载UITableView的大小和内容,但它似乎不起作用。下面是我的代码和日志,我无法弄清楚它为什么不起作用......

代码

for (int i = 0; i < arr.count; i++) {
NSIndexPath *myIndex = [NSIndexPath indexPathForRow:i inSection:0];        
    [self tableView:feed heightForRowAtIndexPath:myIndex];
    [self tableView:feed cellForRowAtIndexPath:myIndex];
}

日志

我在heightForRowAtIndexPath中记录索引路径,我认为可能存在问题

  

2014-08-06 20:26:36.285 App [42159:a0b] 2个索引[0,0]

     

2014-08-06 20:26:36.287 App [42159:a0b] 2个索引[0,1]

     

2014-08-06 20:26:37.836 App [42159:a0b] {length = 2,path = 0 - 0}

     

2014-08-06 20:26:37.864 App [42159:a0b] {length = 2,path = 0 - 1}

2 个答案:

答案 0 :(得分:2)

您不应该直接致电tableView:heightForRowAtIndexPathtableView:cellForRowAtIndexPath:。相反,您应该使用[tableView reloadData]或类似的东西:

[tableView beginUpdates];
[tableView reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic]
[tableView endUpdates];

答案 1 :(得分:0)

重新加载UITableViewCell你必须使用方法ReloadRowAtIndexPath,你的代码在下面

[self.feed beginUpdates]
for (int i = 0; i < arr.count; i++) 
{
    NSIndexPath *myIndex = [NSIndexPath indexPathForRow:i inSection:0];        
    [self.feed reloadRowsAtIndexPath:@[myIndex] withRowAnimation:UITableViewRowAnimationNone];
}
[self.feed endUpdates]