UICollectionView方法deselectItemAtIndexPath不会取消选择所选项

时间:2013-03-28 10:30:05

标签: ios uicollectionview

我想给UICollectionView项基本上一个按钮行为,至少部分而不是真的想要将广告按钮作为子视图,因为我想利用集合视图的标准选择方法和所涉及的协议。

我想让项目成为一个切换按钮,虽然这样做的路径看起来很简单,但它实际上并没有工作。

首先我实施了

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

然后我打电话给

- (void)deselectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated

来自一个单独的委托方法。该方法似乎被正确调用,但item不会更改选择属性。实际上,当检查"选择"物品的属性,来自" didSelectItemAtIndexPath"委托方法,我发现该属性始终为NO,尽管背景已相应改变...

有趣的是我自己无法改变这个值,虽然这个属性没有被定义为只读....

有没有人破解类似的坚果?或者我们可以说这很可能是错误的东西?

1 个答案:

答案 0 :(得分:0)

也许在单元格中设置_isSelected BOOL。在单元格的子类中设置为false

然后在selectedCellForRow ......

[cell applySelection];

在子类细胞中:

-(void)applySelection{
if(_isSelected){
   _isSelected=false;
   self.setImage (or whatever you want to do, do signify not selected)
}else{
   _isSelected=true;
   //do whatever to signify selection
}