2013-11-05 448 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?沒有說什麼? –

相關問題