我在UICollectionView
内部实现UICollectionViewCell
(从左到右:水平滚动)一切正常。麻烦的是,当innercollection
中的最后一个单元格滚动时,外部UICollectionView
获得触摸并相应地向左或向右滚动(发生在第一个和最后一个单元格中)。
如何避免默认情况下发生的滚动。
答案 0 :(得分:0)
如果您的自定义UICollectionViewCell XIB
文件在根目录中看起来像这样(请参阅数据输入矩阵视图旁边的图标,这是我的UICollectionViewCell subclass
的名称),那么您将拥有同样的问题:
解决方案是向XIB添加适当的UICollectionViewCell类,然后将现有数据输入矩阵视图下的所有子视图移动到其中,删除旧根,然后重新连接Outlets。最终结果如下:
您可以看到使用的不同图标 - 这就是您想要的。一旦你像这样改变你的XIB,事件就会通过。
在原始XIB文件(视图为Source)中,非工作版本将根元素引入为
<view ...>
而工作版本将根元素更改为
<collectionViewCell ...>
答案 1 :(得分:0)
尝试确保innercollection
首先对平移手势作出反应。这很容易在代码主集合代码中完成:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
id cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
[collectionView.panGestureRecognizer requireGestureRecognizerToFail:cell.innercollection.panGestureRecognizer];
return cell;
}