美文网首页
TableView编辑模式及自定义右滑多选图标

TableView编辑模式及自定义右滑多选图标

作者: haoxuan_xia | 来源:发表于2017-12-06 15:45 被阅读0次

    // 告诉tableView在编辑模式下可以多选


    self.tableView.allowsMultipleSelectionDuringEditing = YES;

    //进入编辑模式


    [self.tableView setEditing:!self.tableView.isEditing animated:YES];

    //刷新TableView的方式


    - (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);//移动某一行

    //右滑进入编辑模式,单个删除,置顶


    -(NSArray*)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{

    UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"删除" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {

    [self.wineArray removeObjectAtIndex:indexPath.row];

    [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];

    }];

    UITableViewRowAction *topAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"置顶" handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) {

    XMGWine *wine = self.wineArray[indexPath.row];

    [self.wineArray removeObject:wine];

    [self.wineArray insertObject:wine atIndex:0];

    [self.tableView reloadData];

    }];

    return @[deleteAction,topAction];

    }

    //编辑模式多选自定义图片,不用系统的蓝色,在cell中布局时改变


    - (void)layoutSubviews{

    for (UIControl *control in self.subviews) {

    if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]) {

    for (UIView *view in control.subviews) {

    UIImageView *image = (UIImageView *)view;

    if (self.selected) {

    image.image = [UIImage imageNamed:@"CellButtonSelected"];

    }else{

    image.image=[UIImage imageNamed:@"CellButton"];

    }

    }

    }

    }

    [super layoutSubviews];

    }


    - (void)setEditing:(BOOL)editing animated:(BOOL)animated

    {

    [super setEditing:editing animated:animated];

    for (UIControl *control in self.subviews){

    if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]){

    for (UIView *view in control.subviews)

    {

    if ([view isKindOfClass: [UIImageView class]]) {

    UIImageView *image=(UIImageView *)view;

    if (!self.selected) {

    image.image=[UIImage imageNamed:@"CellButton"];

    }

    }

    }

    }

    }

    }

    相关文章

      网友评论

          本文标题:TableView编辑模式及自定义右滑多选图标

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