在iOS上自定义用户位置色调

在iOS上自定义用户位置色调,第1张

概述我正在尝试更改用户位置的颜色,因为它是在Apple的“查找我的朋友”应用程序中完成的(请参阅随附的屏幕截图). 请注意,我使用的是MapBox SDK,目前我有以下方法: - (RMMapLayer *)mapView:(RMMapView *)mapView layerForAnnotation:(RMAnnotation *)annotation{ if (annotation.is 我正在尝试更改用户位置的颜色,因为它是在Apple的“查找我的朋友”应用程序中完成的(请参阅随附的屏幕截图).

请注意,我使用的是MapBox SDK,目前我有以下方法:

- (RMMapLayer *)mapVIEw:(RMMapVIEw *)mapVIEw layerForAnnotation:(RMAnnotation *)annotation{    if (annotation.isUserLocationAnnotation)        return nil;}

我也调查了this thread以了解我应该如何做类似的事情,但没有找到相同的用户位置代码. Apple是否使用静态PNG图片查找我的朋友?通过将其更改为另一种颜色(如果可能的话),我是否会失去围绕该位置的自适应圆?

UPDATE

正如@Incanus在他的回复中所说,在我的 – [RMMapVIEwDelegate mapVIEw:layerForAnnotation:]回调方法中,我应该得到三个对应于isUserLocationAnnotation = YES的调用 – 点,精度圆和脉冲晕.
我只得到一个,我不明白为什么.

此外,我尝试在跟踪模式更改时自定义注释,这是我所做的:

if (self.mMapVIEw.userTrackingMode == RMUserTrackingModeNone){    for (RMAnnotation *annotation in self.mMapVIEw.annotations) {        if (annotation.isUserLocationAnnotation) {            if ([annotation.annotationType isEqualToString:@"RMAccuracyCircleAnnotation"]) {                [(RMCircle*)annotation.layer setFillcolor:[[UIcolor redcolor] colorWithAlphaComponent:0.6]];                [(RMCircle*)annotation.layer removeAllAnimations];            }        }    }    [self enableBouncingOnLayer:self.mMapVIEw.userLocation.layer];}else{    [self.mMapVIEw.userLocation.layer removeAnimationForKey:@"animateScale"];}

到目前为止这么好,我得到蓝色精度圆圈变成红色并停止改变大小.
问题是,MapBox框架仍然会更新它,所以它将恢复正常.

有趣的是,使用这种方法,我确实有3个注释,isUserLocationAnnotation设置为YES,但我只得到一个回调.

任何帮助赞赏.

解决方法 在Swift 3中,

mapVIEw.tintcolor = .red

现在非常直接.

总结

以上是内存溢出为你收集整理的在iOS上自定义用户位置色调全部内容,希望文章能够帮你解决在iOS上自定义用户位置色调所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1040021.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存