【增删改移】
@interface UITableView : UIScrollView <NSCoding>
- (void)beginUpdates; // 在插入,删除,编辑动画开始
- (void)endUpdates; // 与上一个同步使用//必须确保数据源与下面的方法改变一致。
//针对section
- (void)insertSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation;
- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
- (void)moveSection:(NSInteger)section toSection:(NSInteger)newSection NS_AVAILABLE_IOS(5_0);
【根据NSIndexSet】待研究。
//针对行
- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation NS_AVAILABLE_IOS(3_0);
- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath NS_AVAILABLE_IOS(5_0);
点击事件中
[theTableView beginUpdates];
[dataArr removeObjectAtIndex:indexPath.row];
[theTableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationRight];
[dataArr insertObject:@"in" atIndex:indexPath.row];
[theTableView insertRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
[dataArr replaceObjectAtIndex:indexPath.row withObject:@"replace"];
[theTableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
[theTableView moveRowAtIndexPath:indexPath toIndexPath:indexPath];
[theTableView endUpdates];