使用hit-test和UIGestureRecognizers

时间:2014-08-05 15:30:12

标签: ios uiviewcontroller mkmapview uigesturerecognizer hittest

我正在编写自己的地图注释图层,允许注释粘贴在屏幕的一侧(指示屏幕外的某些内容)。它运作良好。我可以添加/删除注释。旋转地图 - >注释如下。捏缩放 - >注释贴在屏幕的一侧。当你放大和缩小时,它们也会成为clustuer和uncluster。

enter image description here

问题是当我执行捏合手势(放大,缩放,缩小或旋转)时,两个手指都不能在MYView(注释)上。

  • MYViewController
    • 的MKMapView
    • MyAnnotationsView
      • MYView的NSArray(每个注释一个)

为了让手势完全正常但仍然允许选择注释,我在MyAnnotationsView中进行了过度的现实命中测试。

-(UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
    for(UIView *subview in self.subviews.reverseObjectEnumerator){
        if(CGRectContainsPoint(subview.frame, point)){
            return subview;
        }
    }
    return nil;
}

然后我在MyView

中捕捉到触摸事件
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
    [self.delegate aggregateViewTouchesEnded:self];
}

告诉MYAnntationsView注释发生了触摸。然后它可以告诉ViewController。

TLDR;当我捏/旋转时,两个手指都不能在注释上。

0 个答案:

没有答案