iOS UITableView側滑刪除

黑暗森林的歌者發表於2018-02-26

UITableView的代理方法中已經整合了側滑刪除的功能,只要實現以下的方法就能增加側滑刪除

//先要設Cell可編輯
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
        return YES;
}
複製程式碼
//定義編輯樣式
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewCellEditingStyleDelete;
}
複製程式碼
//修改編輯按鈕文字
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
    return @"刪除";
}
複製程式碼
//設定進入編輯狀態時,Cell不會縮排
- (BOOL)tableView: (UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}
複製程式碼
//點選刪除
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
  //在這裡實現刪除操作

  //刪除資料,和刪除動畫
   [self.myDataArr removeObjectAtIndex:deleteRow];
   [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:deleteRow inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
}
複製程式碼

注意:一定是先刪除了資料,再執行刪除的動畫或者其他操作,否則會出現崩潰

相關文章