我正在尝试向tableView添加行,如下所示:
[myArray addObject:@"Apple"];
[myTableView beginUpdates];
[myTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
[myTableView endUpdates];
问题是细胞没有刷新。 textLabels与数据源数组不对应。
我通过添加:
解决了这个问题[myTableView reloadData];
但这会让漂亮的插入动画消失。
想法?谢谢!
答案 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];