react-native-baidumap-sdk
react-native-baidumap-sdk copied to clipboard
对于 Marker 自定义view 中Onpress失效的小bug,亲爱的qiuxiang能不能解决下啊
如题目,好多人问,我们需求很强烈啊,qiuxiang同志,要不要喝杯咖啡小改下代码?
回退RN到0.52代价好高啊
这可不是一杯咖啡的时间能解决的。。这几天不一定有时间。如果有时间我会尽快修复
这是这些天我听到的最美妙的声音,直击心灵啊。 You will save my life!
我的leader在你的代码上修改了下,目前解决了这个问题。他好像在RCTmap那个文件里改了个方法。如果你有计划修复这个问题,可能对你有一些帮助。
是怎么改的呢?
我不是专业的 iOS 开发,如果有现成的解决方法就省得我再去尝试
@wentianl20 同问是怎么改的,我也在用作者的amap3d,遇到了同样的问题,现在退回到0.52了,安卓性能明显下降
同遇到这个问题 很忧伤
我的leader在你的代码上修改了下,目前解决了这个问题。他好像在RCTmap那个文件里改了个方法。如果你有计划修复这个问题,可能对你有一些帮助。
请问你这个问题怎么解决的呢?被这个问题困扰了好几天
这是这些天我听到的最美妙的声音,直击心灵啊。 You will save my life!
你好 可以分享下自定义view的点击事件吗 谢谢啦
@qiuxiang @whit15 @qs754947618 ios上自定义的callout 无法响应点击事件的原因我找到了 因为paopaoView的frame 是 0 所以捕获不到点击事件 自己可以手动调整下代码 作者下个版本更新下吧
@yuyongmao 感谢,但是我不会iOS,可以提交一个pr吗,辛苦大佬
@yuyongmao 或者简单贴一下改的那段代码吧,感谢感谢
@wentianl20 能提个pr吗。大佬
关于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;
}