iOS 刪除UITableView 行的兩種方法
阿新 • • 發佈:2019-02-16
大家都知道,刪除行時table會呼叫其Data Source方法:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
在該方法中,可以有兩種實現:
方法1.修改資料來源,然後再[mytable reload],如:
[arr removeObjectAtIndex:indexPath.row];
[mytable reload];
方法2.
呼叫UITableView的成員方法
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
如:
[arr removeObjectAtIndex:indexPath.row];
[mytable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPaths withRowANimation:UITableViewRowAnimationFade]];
有一點要注意的是:在呼叫 - (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation) animation前,要先修改資料來源,否則程式會出錯
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
在該方法中,可以有兩種實現:
方法1.修改資料來源,然後再[mytable reload],如:
[arr removeObjectAtIndex:indexPath.row];
[mytable reload];
方法2.
呼叫UITableView的成員方法
- (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths
如:
[arr removeObjectAtIndex:indexPath.row];
[mytable deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPaths withRowANimation:UITableViewRowAnimationFade]];
有一點要注意的是:在呼叫 - (void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)