我正在創建一個帶有UICollectionView
的網格佈局,但滾動僅在按下圖像時才起作用。如果我按下空白處,視圖不會滾動。如何爲背景和圖像上的印刷機啓用滾動功能?當我拖動項目之間的空白時,爲什麼我的UICollectionView不滾動?
例如,在下面的屏幕截圖中,僅當按下白色方塊時,滾動才起作用,但如果按下方塊之間的黑色,則不起作用。
我不認爲我有任何滾動特定代碼,但如果你希望我加入特定代碼樣本讓我知道。
我正在創建一個帶有UICollectionView
的網格佈局,但滾動僅在按下圖像時才起作用。如果我按下空白處,視圖不會滾動。如何爲背景和圖像上的印刷機啓用滾動功能?當我拖動項目之間的空白時,爲什麼我的UICollectionView不滾動?
例如,在下面的屏幕截圖中,僅當按下白色方塊時,滾動才起作用,但如果按下方塊之間的黑色,則不起作用。
我不認爲我有任何滾動特定代碼,但如果你希望我加入特定代碼樣本讓我知道。
如果您設置UICollectionView
的backgroundColor
或backgroundView
,它將在視圖中的任何位置(包括您的示例中的白色方框之間)的任何位置觸摸時滾動。
這個答案不適用於我 –
最後我解決了這個問題。這是我做的:
我注意到問題是我的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];
}
希望這有助於你!
同樣的問題在這裏,和答案1沒有工作 –