相信很多做iOS开发的同行,在项目中都会遇到很多列表,需要实现单选或者多选的场景。基于此,我想把自己在使用UICollectionView实现单选或者多选时采用的方案,分享给出来,仅供大家在开发时的参考。
UICollectionView是一个定制性很强的视图。用它可以实现很多炫酷的图片展示,列表选择,所以很多的iOS开发项目都会用到。笔者在以往的开发项目中就遇到需要实现单选和多项的需求,一开始,我也和大部分开发者一样,在控制器中创建一个容器,用来记录自己选择cell的indexPath,后来查看UICollectionView的属性时,发现UICollectionView是可以帮我们记录选中cell的indexPath,但是当遇到需要修改cell 的UI时,又遇到了问题,不知道怎么告知cell是选中还是取消选中,最后发现自己出发点错误了,cell的选中与否不应该从UICollectionView中寻找答案,而是在cell本身上寻找答案。好了, 废话也不多说,既然,我们要实现单选和多选的功能,这里就需要介绍UICollectionView的三个属性:
@property (nonatomic) BOOL allowsSelection; // default is YES
@property (nonatomic) BOOL allowsMultipleSelection; // default is NO
@property (nonatomic, readonly, nullable) NSArray*indexPathsForSelectedItems;
以及UICollectionViewCell的一个属性:
@property (nonatomic, getter=isSelected) BOOL selected;
UICollectionView的三个属性,用来帮我记录选择的UICollectionViewCell,而UICollectionViewCell的一个属性,用来帮我修改Cell的UI界面。
附上GitHub地址:github.com/Cool-plume-HL/UICollectionView.git
总的来说,这个还是比较简单。
网友评论