2013-01-06 40 views
3

我正在創建一個帶有UICollectionView的網格佈局,但滾動僅在按下圖像時才起作用。如果我按下空白處,視圖不會滾動。如何爲背景和圖像上的印刷機啓用滾動功能?當我拖動項目之間的空白時,爲什麼我的UICollectionView不滾動?

例如,在下面的屏幕截圖中,僅當按下白色方塊時,滾動才起作用,但如果按下方塊之間的黑色,則不起作用。

我不認爲我有任何滾動特定代碼,但如果你希望我加入特定代碼樣本讓我知道。

+0

同樣的問題在這裏,和答案1沒有工作 –

回答

1

如果您設置UICollectionViewbackgroundColorbackgroundView,它將在視圖中的任何位置(包括您的示例中的白色方框之間)的任何位置觸摸時滾動。

+0

這個答案不適用於我 –

0

最後我解決了這個問題。這是我做的:

我注意到問題是我的UICollectionViewCell有userInteractionEnabled = YES。我試圖將此值更改爲NO,並且滾動開始工作。 UICollectionViewCells正在攔截觸摸,Collection視圖滾動不起作用。

但我有一個附帶的問題:一旦我碰到一個單元格,didSelectItemAtIndexPath方法沒有被調用。

我的解決方案是添加一個UITapGestureRecognizer來檢測單元格是否被觸摸並手動調用此方法。

一下添加到viewDidLoad方法:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)]; 
[self.collectionView addGestureRecognizer:singleTap]; 

這裏是singleTapGestureCaptured方法:

- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture 
{ 
    CGPoint touchPoint=[gesture locationInView:self.collectionView]; 
    NSIndexPath* indexPath = [self.collectionView indexPathForItemAtPoint:touchPoint]; 
    [self collectionView:self.collectionView didSelectItemAtIndexPath:indexPath]; 
} 

希望這有助於你!

相關問題