UiCollectionview 允许对特定单元格进行单选
Posted
技术标签:
【中文标题】UiCollectionview 允许对特定单元格进行单选【英文标题】:UiCollectionview allow single selection for specific cell 【发布时间】:2016-10-06 05:17:36 【问题描述】:在集合视图中,我选择了一个单元格,但它被选中了多个单元格。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
CustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
cell.Selectitems.tag=indexPath.row;
[cell.Selectitems addTarget:self action:@selector(selectitem:) forControlEvents:UIControlEventTouchUpInside];
-(void)selectitem :(UIButton *)sender
if ([sender isSelected])
[sender setSelected: NO];
cell.check = YES;
[cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-uncheck.png"] forState:UIControlStateNormal];
else
[sender setSelected: YES];
cell.check = YES;
[cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-check.png"] forState:UIControlStateNormal];
检查下面我的图片链接 [1]:http://i.stack.imgur.com/WIgDH.png
【问题讨论】:
你能再添加一些代码吗 在选择项按钮下,我选择了一个单元格,但它也被选中了。 我明白,对于您的代码我们找不到问题 if ([sender isSelected]) [sender setSelected: NO];细胞检查=是的; [cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-uncheck.png"] forState:UIControlStateNormal]; else [发件人 setSelected: YES];细胞检查=是的; self.selectedIndexPath=indexPath; [cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-check.png"] forState:UIControlStateNormal]; 在 cellForItemAtIndexPath 中也可以做同样的事情 【参考方案1】:这是完整的代码,可以满足您对collectionview
复选框的要求
https://www.dropbox.com/s/e43zk55surlwjlk/CollectionCkeck.zip?dl=0
【讨论】:
【参考方案2】:当您单击第二个单元格时,您不会更改第一个单元格上的图像。
因此,请确保如果您单击任何单元格,请将图像更改为 product-check.png
,将之前的单元格图像更改为 product-uncheck.png
【讨论】:
【参考方案3】:按下按钮时这样做
-(void)selectitem :(UIButton *)sender
//Get Index path from Button Tag
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:sender.tag inSection:0];
// get Cell instance and than do whatever you want with Cell items
CustomCell *cell = *cell = [self.collectionView cellForItemAtIndexPath:indexPath];
if ([cell.Selectitems isSelected])
[cell.Selectitems setSelected: NO];
cell.check = YES;
[cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-uncheck.png"] forState:UIControlStateNormal];
else
[cell.Selectitems setSelected: YES];
cell.check = YES;
[cell.Selectitems setBackgroundImage:[UIImage imageNamed:@"product-check.png"] forState:UIControlStateNormal];
我希望这能解决你的问题。
【讨论】:
CustomCell *cell = *cell = [self.collectionView cellForItemAtIndexPath:indexPath];这里显示这个错误:Assigning to 'CustomCell' from in compatible type 'UICollectionViewCell * _Nullable' CustomCell *cell = [self.collectionView cellForItemAtIndexPath:indexPath];对不起那个错误,,,,我已经写了两次“单元格”... id 这比将单元格转换为 CustomCell 给出错误 感谢您为我花费的宝贵时间。已经有人回答了。以上是关于UiCollectionview 允许对特定单元格进行单选的主要内容,如果未能解决你的问题,请参考以下文章
如何在 willDisplay 单元格回调中访问 UICollectionView 中的特定单元格
无法在 uicollectionview、UICollectionView 的特定 indexPath.row 处为单元格设置标题
在 UICollectionView 中为特定单元格设置动画
页面加载时滚动后如何访问 UICollectionView 中的特定单元格?
如何使用 viewForSupplementaryElementOfKind 显示 UICollectionView 的特定单元格 - swift