我正在使用UICollectionView
创建网格布局,但只有按下图像时,滚动似乎才有效。如果我按下空白区域,视图不会滚动。如何为背景和图像上的印刷机启用滚动?
例如,在下面的屏幕截图中,滚动仅在按下白色方块时才有效,但如果按下方块之间的黑色则不能滚动。
我认为我没有任何滚动特定代码,但如果您希望我添加特定代码示例,请告诉我。
答案 0 :(得分:1)
如果您设置backgroundColor
的{{1}}或backgroundView
,则会在视图中的任何位置(包括示例中的白色方块之间)触摸时滚动。
答案 1 :(得分: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];
}
希望这对你有帮助!