美文网首页
UITableView多行选择修改系统默认图片

UITableView多行选择修改系统默认图片

作者: oneDemo | 来源:发表于2016-08-01 11:49 被阅读589次

在tableView的编辑模式的多选模式开启:

self.tableView.allowsMultipleSelectionDuringEditing=YES;

使用reveal分析cell在插入模式的时候view的cell的视图,当进入插入编辑模式时,cell的subview有一个叫UITableViewCellEditControl的subview,这个代表添加按钮。可以修改该view达到修改添加按钮的位置,大小等属性。

可以根据结构发现,在UITableViewCellEditControl上有UIIMageView也就是类似于系统短信的多选的图片。

修改之前,系统默认的

根据需求,自定这个选择的样式,例如更换图片之类,我们在自定义cell的时候重写layoutSubviews这个方法。

- (void)layoutSubviews { 

      [super layoutSubviews];

      for (UIControl*control in self.subviews) {

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

           for(UIView *v in control.subviews) {

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

                        UIImageView *img = (UIImageView*)v;

                       if(self.selected) {//选择状态图片

                               img.image= [UIImage imageNamed:@"messageListEditSelect"];

                          }

                           else {//未选中状态图片

                             img.image= [UIImage imageNamed:@"messageListEditNormal"];

                         }

                     }

               }

            }

       }

}

修改后结果

Table中的只要代理实现方法主要使用

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath {

if(tableView.editing) {//在多行编辑选择样式

[self.deleteArray addObject:[self.dataArrayobjectAtIndex:indexPath.row]];

}

}

- (void)tableView:(UITableView*)tableView didDeselectRowAtIndexPath:(NSIndexPath*)indexPath {//在多行编辑取消选择样式

if(tableView.editing) {

[self.deleteArray removeObject:[self.dataArrayobjectAtIndex:indexPath.row]];

}

}

相关文章

网友评论

      本文标题:UITableView多行选择修改系统默认图片

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