2013-11-05 285 views
3

所以我有一个uicollectionview,它驻留在视图控制器内,在这个VC中我有一些按钮和其他控件,我加载数据到CollectionView中,我无法检测到点击在collectionview上,但它响应滚动罚款。 所有我能想到的是,有时我在我的视图(包括collectionview)中的所有子视图上启用了用户交互,并且这起作用,即没有控件工作,然后基于另一个条件启用活动。UICollectionView,单元格选择不工作,单元格滚动良好

这是代码

if (_isMenuVisible) { 
    for (UIView *subview in [self.actualView subviews]) { 
    if([subview isMemberOfClass:[UIButton class]] || [subview isMemberOfClass:[UILabel class]] || [subview isMemberOfClass:[UIView class]]) { 
     subview.userInteractionEnabled = _isMenuVisible; 
    } 
    else { 
     subview.userInteractionEnabled = !_isMenuVisible; 
    } 
    } 
} 
else { 
    for (UIView *subview in [self.actualView subviews]) { 
     subview.userInteractionEnabled = !_isMenuVisible; 
    } 
} 

难道这会影响行为的一个例子?

+0

在上面的代码中设置断点并检查用户交互是否被禁用。 – Venkat

+0

您是否设置了UICollectionView的委托属性?为了响应集合视图单元格选择,您应该在集合视图的代理上实现'collectionView:didSelectItemAtIndexPath:'。 – daltonclaybrook

回答

2

确保您的ViewController采用UICollectionViewDelegate协议。然后,如上所述,只需覆盖collectionView:didSelectItemAtIndexPath:以决定在单击某个单元格时要执行的操作。

使用indexPath通过访问其行或节属性来确定单元格的行或节。

+6

请详细说明这是什么:UICollectionViewCellDelegate? – cynistersix

+0

在iOS SDK中没有这样的。请不要混蛋@AdamWaite – Marchy

+2

哼@Marchy?没有说什么? –

相关问题