前段时间有个需求, 就是将collectionviewCell 设计成单选框.需求大致如下图 1.1
1.1需求很简单,就是点击任意一个 会变为选中状态.其余不变,如果只有两个商品的话 ,就不需要用collectionview 用button会更简单的实现,但是为考虑后续商品会增加,所以用collectionview 比较好.
这个思路 是一位大神提供, 我只是把这个分享下.
1. 命名一个属性,用作 记录 点击的 indexPath.item
@property(nonatomic,assign)NSInteger lastNum;
2. 在collectionview 的代理方法 didSelect 记录点击的indexPath.item 然后刷新collectionview
-(void)collectionView:(UICollectionView*)collectionView didSelectItemAtIndexPath:(NSIndexPath*)indexPath{
self.lastTag= indexPath.item;
[self.goodsChooseCollectionView reloadData];
}
3.在collectionview数据源方法里进行判断
if(indexPath.item==self.lastTag) {
[cell.chooseBtnsetImage:[UIImageimageNamed:@"selec_"]forState:UIControlStateNormal];
}else{
[cell.chooseBtnsetImage:[UIImageimageNamed:@"椭圆-3-拷贝-2"]forState:UIControlStateNormal];
}
注:
这个方法 完全适用于 我的需求,而且实现简单,但是如果要实现 同一个按钮 点击 再点击 取消点击 就不适用.具体情况 还要根据自己的需求.
网友评论