UICollectionView内部的UICollectionView在获取滚动触摸时遇到麻烦

时间:2014-05-28 07:43:36

标签: ios uicollectionview

我在UICollectionView内部实现UICollectionViewCell(从左到右:水平滚动)一切正常。麻烦的是,当innercollection中的最后一个单元格滚动时,外部UICollectionView获得触摸并相应地向左或向右滚动(发生在第一个和最后一个单元格中)。

如何避免默认情况下发生的滚动。

2 个答案:

答案 0 :(得分:0)

如果您的自定义UICollectionViewCell XIB文件在根目录中看起来像这样(请参阅数据输入矩阵视图旁边的图标,这是我的UICollectionViewCell subclass的名称),那么您将拥有同样的问题:

enter image description here

解决方案是向XIB添加适当的UICollectionViewCell类,然后将现有数据输入矩阵视图下的所有子视图移动到其中,删除旧根,然后重新连接Outlets。最终结果如下:

enter image description here

您可以看到使用的不同图标 - 这就是您想要的。一旦你像这样改变你的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;
}