實現(xiàn)cell的左滑刪除
- 只需要遵守tableView的代理态坦,實現(xiàn)以下方法即可實現(xiàn)
//左滑編輯模式
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
//可在此對點擊cell右邊出現(xiàn)的按鈕進行邏輯處理
}
//設置左滑刪除按鈕的文字
- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
{
//設置右邊按鈕的文字
return @"刪除";
}
- 實現(xiàn)以下方法可代替以上兩個方法盐数,還能添加多個按鈕,但只適配到iOS 8.0
- (NSArray<UITableViewRowAction *> *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"關注" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
NSLog(@"點擊了關注");
tableView.editing = NO;
}];
UITableViewRowAction *action2 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"刪除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {
// NSLog(@"點擊了刪除");
[self.wineArray removeObjectAtIndex:indexPath.row];
NSIndexPath *newPath = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section];
[tableView deleteRowsAtIndexPaths:@[newPath] withRowAnimation:UITableViewRowAnimationFade];
}];
return @[action1,action2];
}
-
左滑出現(xiàn)兩個按鈕
實現(xiàn)批量處理
//先設置tableView的多選屬性
//設置多選
self.tableView.allowsMultipleSelectionDuringEditing = YES;
//再在點擊事件中實現(xiàn)邏輯
- (IBAction)editingModel {
[self.tableView setEditing:!self.tableView.editing animated:YES];
}
-
如圖
還有自定義cell批量刪除以后有機會再講