美文网首页IOS收藏iOS实用iOS
UITableViewCell (左滑删除按钮及编辑模式)

UITableViewCell (左滑删除按钮及编辑模式)

作者: YANGGQ | 来源:发表于2016-03-09 15:34 被阅读14943次

    左滑出现删除按钮

    • 需要实现tableView的代理方法
    /**
     *  只要实现了这个方法,左滑出现Delete按钮的功能就有了
     *  点击了“左滑出现的Delete按钮”会调用这个方法
     */
    //IOS9前自定义左滑多个按钮需实现此方法
    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {
        // 删除模型
        [self.wineArray removeObjectAtIndex:indexPath.row];
    
        // 刷新
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
    }
    
    /**
     *  修改Delete按钮文字为“删除”
     */
    - (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        return @"删除";
    }
    

    左滑出现N个按钮

    • 需要实现tableView的代理方法
    /**
     *  只要实现了这个方法,左滑出现按钮的功能就有了
     (一旦左滑出现了N个按钮,tableView就进入了编辑模式, tableView.editing = YES)
     */
    - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {
    
    }
    
    /**
     *  左滑cell时出现什么按钮
     */
    - (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewRowAction *action0 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"关注" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
            NSLog(@"点击了关注");
    
            // 收回左滑出现的按钮(退出编辑模式)
            tableView.editing = NO;
        }];
    
        UITableViewRowAction *action1 = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath) {
            [self.wineArray removeObjectAtIndex:indexPath.row];
            [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
        }];
    
        return @[action1, action0];
    }
    

    • 进入编辑模式

    // self.tabelView.editing = YES;
    [self.tableView setEditing:YES animated:YES];
    // 默认情况下,进入编辑模式时,左边会出现一排红色的“减号”按钮
    

    • 在编辑模式中多选

    // 编辑模式的时候可以多选
    self.tableView.allowsMultipleSelectionDuringEditing = YES;
    // 进入编辑模式
    [self.tableView setEditing:YES animated:YES];
    
    // 获得选中的所有行
    self.tableView.indexPathsForSelectedRows;
    

    相关文章

      网友评论

      • 雨脆弱的淋下丶痛却不说话:我的一直左滑,左滑的宽度就会满屏是咋回事
      • 乡野村夫汉:请问大侠如果想要改变删除和编辑两个按钮的背景颜色怎么写呢?
        cj小牛:实现了没
      • 李超帅:楼主 为什么我 点击编辑状态,左边减号按钮没有出现,是不是有那个属性要设置?cell是自定义的
        twinkle_孟:问题解决了吗?
      • MrRightGen:为啥我的左滑,大部分时候滑不动, 偶尔可以滑动
      • panzhangbao:楼主,// 默认情况下,进入编辑模式时,左边会出现一排红色的“减号”按钮,能把这个减号给去掉吗?感觉太难看啦
        panzhangbao: @panzhangbao 没有。这个好像是系统默认的
        iOS阿能:解决了没

      本文标题:UITableViewCell (左滑删除按钮及编辑模式)

      本文链接:https://www.haomeiwen.com/subject/settlttx.html