UICollectionView hitTest - >正常行为

时间:2014-06-18 03:48:25

标签: ios uiview uicollectionview uicollectionviewlayout hittest

我超越了hitTest,这很好用。我希望它表现得好像我在某些条件下没有覆盖这种方法,以及问题出在哪里。

我使用子类UICollectionView使用自定义MKMapView实现在UICollectionViewLayout上呈现单元格。我需要覆盖hitTest子类中的UICollectionView,以便触摸事件可以传递给mapView,并且可以滚动它。一切正常。

我有一个切换机制,可以在我的UICollectionViewLayout(地图)和UICollectionViewFlowLayout之间设置动画(将地图上的动画项目设置为网格格式)。这也很好用,但是当我显示流布局时,我希望用户能够像普通的那样滚动UICollectionView(就好像hitTest不被覆盖一样)。我无法确定hitTest中要返回的内容,以确定其默认行为。

-(UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
    if(self.tapThrough == YES){
        NSArray *indexPaths = [self indexPathsForVisibleItems];
        for(NSIndexPath *indexPath in indexPaths){
            UICollectionViewCell *cell = [self cellForItemAtIndexPath:indexPath];
            if(CGRectContainsPoint(cell.frame, point)){
                return cell;
            }
        }
        return nil;
    } else {
        return ???
    }
}

我试过回复了很多东西。 selfself.superview等等......没有什么能让它正常运转(我无法上下滚动细胞)。

1 个答案:

答案 0 :(得分:1)

如果您想要点击测试的正常行为:

return [super hitTest:point withEvent:event];

这将返回命中测试通常在未被覆盖时返回的内容。