2015-05-05 32 views
1

我實現了不可滾動的UICollectionView在UIscrollview內。 滾動視圖的大小是100x100集合視圖的大小是100x200; 而滾動視圖的內容大小爲100x200。UICollectionView的didSelectItemAtIndexPath在UIScrollView裏面沒有被調用

我的問題是,當我觸摸某些單元格(單元格不在100x100矩形)時,不會調用012Se555,

啓用單元的用戶交互。當我將scrollview高度等於集合視圖的高度時,所有單元格都可以觸摸。 在此先感謝。

+0

你設置了uicollectionView的「委託」嗎?你是否符合你的「viewcontroller」? –

+0

是的。當我觸摸100x100矩形內的單元格時調用該方法。即scrollview的可見部分 – Neenu

回答

2

由於滾動視圖對細胞重疊...最好的辦法是添加敲擊手勢上的UIScrollView諸如此類,

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gestureAction:)]; 
[recognizer setNumberOfTapsRequired:1]; 
self.scrollViu.userInteractionEnabled = YES; 
[self.scrollViu addGestureRecognizer:recognizer]; 

添加上面的代碼中cellForItemAtIndexPath方法和寫入動作手勢的方法例如像

-(void)gestureAction:(UITapGestureRecognizer *) sender 
{ 
    CGPoint touchLocation = [sender locationOfTouch:0 inView:self.YourCollectionViewName]; 
    NSIndexPath *indexPath = [self.YourCollectionViewName indexPathForRowAtPoint:touchLocation]; 

    NSLog(@"%d", indexPath.item); 
} 

在上面的手勢(動作)方法中,您可以獲取與didSelectItemAtIndexPath相同的indexPath。

+0

,但它返回indexPath.item爲0,即使當我觸摸表外 – Neenu

+1

我不知道您的視圖層次結構爲這行CGPoint touchLocation = [發件人locationOfTouch:0 inView:self.YourCollectionViewName];應該照顧到這一點 –

0

我的建議就像是這樣一個容器,其大小與集合視圖相同,即100x200,並在容器上添加集合視圖,然後在滾動視圖上添加容器。這應該解決這個問題。

由於我有類似的問題,因爲我無法滾動集合視圖,並在滾動視圖的不可見部分進行交互時選擇集合視圖。

相關問題