我试图重新加载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}
答案 0 :(得分:2)
您不应该直接致电tableView:heightForRowAtIndexPath
或tableView: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]