美文网首页
高德地图calloutView点击无响应,解决办法

高德地图calloutView点击无响应,解决办法

作者: Flutter求学者 | 来源:发表于2019-04-04 16:57 被阅读0次
    - (MAAnnotationView *)mapView:(MAMapView *)mapView viewForAnnotation:(id<MAAnnotation>)annotation
    {
    }
    

    因为自定义的气泡是添加到大头针上的,而大头针的size只有下面很小一部分,所以calloutView是在大头针的外面的。
    而 iOS 按钮超过父视图范围是无法响应事件的处理方法。所以就要重写hittest方法。

    在CustomAnnotationView.m中重写hittest方法:

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    UIView *view = [super hitTest:point withEvent:event];
    if (view == nil) {
        CGPoint tempoint = [self.calloutView.navBtn convertPoint:point fromView:self];
        if (CGRectContainsPoint(self.calloutView.navBtn.bounds, tempoint))
        {
            view = self.calloutView.navBtn;
        }
    }
    return view;
    }
    

    这里的self.calloutView.navBtn 就是你需要点击的按钮

    相关文章

      网友评论

          本文标题:高德地图calloutView点击无响应,解决办法

          本文链接:https://www.haomeiwen.com/subject/amsqiqtx.html