react-native-baidumap-sdk icon indicating copy to clipboard operation
react-native-baidumap-sdk copied to clipboard

对于 Marker 自定义view 中Onpress失效的小bug,亲爱的qiuxiang能不能解决下啊

Open wentianl20 opened this issue 6 years ago • 16 comments

如题目,好多人问,我们需求很强烈啊,qiuxiang同志,要不要喝杯咖啡小改下代码?

回退RN到0.52代价好高啊

wentianl20 avatar Feb 25 '19 01:02 wentianl20

这可不是一杯咖啡的时间能解决的。。这几天不一定有时间。如果有时间我会尽快修复

qiuxiang avatar Feb 25 '19 01:02 qiuxiang

这是这些天我听到的最美妙的声音,直击心灵啊。 You will save my life!

wentianl20 avatar Feb 25 '19 02:02 wentianl20

我的leader在你的代码上修改了下,目前解决了这个问题。他好像在RCTmap那个文件里改了个方法。如果你有计划修复这个问题,可能对你有一些帮助。

wentianl20 avatar Feb 26 '19 01:02 wentianl20

是怎么改的呢?

qiuxiang avatar Feb 26 '19 02:02 qiuxiang

我不是专业的 iOS 开发,如果有现成的解决方法就省得我再去尝试

qiuxiang avatar Feb 26 '19 02:02 qiuxiang

@wentianl20 同问是怎么改的,我也在用作者的amap3d,遇到了同样的问题,现在退回到0.52了,安卓性能明显下降

whit15 avatar Mar 01 '19 03:03 whit15

同遇到这个问题 很忧伤

les10281502 avatar Mar 05 '19 10:03 les10281502

我的leader在你的代码上修改了下,目前解决了这个问题。他好像在RCTmap那个文件里改了个方法。如果你有计划修复这个问题,可能对你有一些帮助。

请问你这个问题怎么解决的呢?被这个问题困扰了好几天

qs754947618 avatar Mar 07 '19 11:03 qs754947618

这是这些天我听到的最美妙的声音,直击心灵啊。 You will save my life!

你好 可以分享下自定义view的点击事件吗 谢谢啦

yuyongmao avatar Mar 25 '19 00:03 yuyongmao

@qiuxiang @whit15 @qs754947618 ios上自定义的callout 无法响应点击事件的原因我找到了 因为paopaoView的frame 是 0 所以捕获不到点击事件 自己可以手动调整下代码 作者下个版本更新下吧

yuyongmao avatar Mar 28 '19 00:03 yuyongmao

@yuyongmao 感谢,但是我不会iOS,可以提交一个pr吗,辛苦大佬

whit15 avatar Mar 31 '19 07:03 whit15

@yuyongmao 或者简单贴一下改的那段代码吧,感谢感谢

whit15 avatar Mar 31 '19 07:03 whit15

我这边有一种绕过改源码的方法,相当于变相实现,需要的同学可以参考下.

链接

Geek-ch avatar Apr 09 '19 09:04 Geek-ch

@wentianl20 能提个pr吗。大佬

zhllucky avatar May 29 '20 02:05 zhllucky

我这边有一种绕过改源码的方法,相当于变相实现,需要的同学可以参考下.

链接

您这个不是没有使用自定义View吗?

NapChen avatar May 25 '21 07:05 NapChen

关于iOS 自定义maker点击不生效问题 我调试的时候发现RCTMarker.m line 96 _annotationView.image = nil; 这行把image(也就是默认的maker)去掉之后点击事件就不管用了,也就是使用自定义的视图需要挂一个image。至于为什么我也没搞清楚,但是加一个透明的image点击事件就正常了 可以参考一下代码 将RCTMarker.m

- (void)didAddSubview:(UIView *)subview {
    if ([subview isKindOfClass:[RCTCallout class]]) {
        _calloutView = [[BMKActionPaopaoView alloc] initWithCustomView:subview];
        _annotationView.paopaoView = _calloutView;
    } else {
        [_annotationView addSubview:subview];
        _annotationView.image = nil;
        _annotationView.bounds = subview.bounds;
    }
}

替换为

- (void)didAddSubview:(UIView *)subview {
    if ([subview isKindOfClass:[RCTCallout class]]) {
        _calloutView = [[BMKActionPaopaoView alloc] initWithCustomView:subview];
        _annotationView.paopaoView = _calloutView;
    } else {
        [_annotationView addSubview:subview];
        _annotationView.image = [self drawClearImage];
        _annotationView.frame = CGRectMake(-_image.size.width/2, -_image.size.height/2, _image.size.width, _image.size.height);
    }
}

- (UIImage *)drawClearImage {
    UIGraphicsBeginImageContext(_image.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
    CGContextFillRect(context, CGRectMake(0, 0, _image.size.width, _image.size.height));
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

GodVampire avatar Jun 04 '21 09:06 GodVampire