优质广告供应商

广告是为了更好地支持作者创作

UITableView和UICollectionView的多选

  • UITableview

1、实现多选,最重要的就是下面这行代码

self.myTableView.allowsMultipleSelection = YES;

2、如果实现了下面的这个代理方法,有出现系统自带的多选图标

- (UITableViewCellEditingStyle)tableView:(UITableView*)tableView editingStyleForRowAtIndexPath:(NSIndexPath*)indexPath
{
      // 如果把‘|’换为‘&’,则可以自定义自己的选中图标
      return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}

// swift
func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
        // 如果把‘|’换为‘&’,则可以自定义自己的选中图标
        return UITableViewCellEditingStyle.init(rawValue: UITableViewCellEditingStyle.insert.rawValue | UITableViewCellEditingStyle.delete.rawValue)!
}

3、如果这时候还要让cell有左滑删除的功能,这是就不能实现第2步的代理方法,直接写第1步的一行代码即可

参考文章:【UITableView多选Cell操作】

  • UICollectionView

1、同样的,最重要的是下面这行代码

self.myCollectionView.allowsMultipleSelection = YES;

2、在item的setSelect方法中设置选中和不选中的样式

- (void)setSelected:(BOOL)selected
{
      [super setSelected:selected];
    
      if (selected) {
           self.bgView.layer.borderColor = [UIColor redColor];
      } else {
           self.bgView.layer.borderColor = [UIColor blueColor];
    }
}

参考文章:【iOS中的界面多选功能--(UICollectionView)】

优质广告供应商

广告是为了更好地支持作者创作

推荐阅读更多精彩内容