0

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

我想让 item 成为一个开关按钮,虽然它的路径看起来很简单,但它实际上并不起作用。

首先我实施

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

然后我打电话给

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

从一个单独的委托方法。该方法似乎被正确调用,但项目不会改变选择属性。实际上,在检查项目上的“选定”属性时,从“didSelectItemAtIndexPath”委托方法中,我发现该属性始终为“否”,尽管背景已经相应改变......

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

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

4

1 回答 1

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
}
于 2013-03-28T12:27:43.070 回答