UITableView更新后的ReloadData

时间:2013-02-26 08:36:37

标签: ios objective-c uitableview

我正在尝试向tableView添加行,如下所示:

[myArray addObject:@"Apple"];

[myTableView beginUpdates];
[myTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
[myTableView endUpdates];

问题是细胞没有刷新。 textLabels与数据源数组不对应。

我通过添加:

解决了这个问题
[myTableView reloadData];

但这会让漂亮的插入动画消失。

想法?谢谢!

2 个答案:

答案 0 :(得分:4)

addObject:将对象添加到可变数组的 end 。然后,在下一行,您告诉表视图,在表的 top 处显示一个新行。除非你的阵列“向后”,否则看起来好像你告诉桌子将一个单元“插入”在错误的位置。

答案 1 :(得分:1)

您将项目添加到数组末尾,但在表格的开头添加一行...请尝试这样:

NSString* obj = @"Apple";
[myArray addObject:obj];

[myTableView beginUpdates];
[myTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:[myArray indexOfObject:obj] inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
[myTableView endUpdates];