UICollectionViewCell内的UICollectionView - 空区域取消触摸

时间:2014-07-07 19:48:19

标签: ios objective-c uitableview uicollectionview

我在另一个UICollectionView(B)的UICollectionViewCell内有UICollectionView(A)照片库缩略图。

我想实现这种行为:

  • 当用户点击缩略图(A&#39的单元格)时,会打开照片的详细信息(否) 这里的问题)
  • 当用户点击UICollectionView(A)的空白空间时,我想打开(B)单元格细节。 UICollectionView(A)的空白区域取消用户触摸,并且不会将它们转发到(B)单元格。

我有:

_collectionView.canCancelContentTouches = NO;
_collectionView.delaysContentTouches = NO;

并使用自动布局。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。我将UICollectionView子类化,然后覆盖hitTest方法。

- (UIView *) hitTest:(CGPoint)point withEvent:(UIEvent *)event {

    UIView* view = [super hitTest:point withEvent:event];

    if (view == self) {

        return self.superview;

    }

    else {

         return view;

    }
}

答案 1 :(得分:1)

swift version

override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? {
    let v = super.hitTest(point, withEvent: event)
    return v == self ? superview : v
}