高德 ios 自定义气泡添加点击事件无效问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高德 ios 自定义气泡添加点击事件无效问题相关的知识,希望对你有一定的参考价值。

在使用高德地图sdk开发的时候,需要自定义气泡吹出框,发现气泡添加的点击事件或者button都没响应.

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

解决办法:

在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 就是你需要点击的按钮

亲测可用.

以上是关于高德 ios 自定义气泡添加点击事件无效问题的主要内容,如果未能解决你的问题,请参考以下文章

高德地图如何标记

vue自定义 组件标签 click 点击事件无效

ios 添加到cell 上的button点击无效!扩大button的点击区域(黑魔法)

iOS Swift 给动画添加点击事件

高德地图怎么在指定地点添加mark并且可以有点击事件csdn

高德地图-添加自定义图标