MKMapView:用户位置图钉颜色自动变为灰色

Posted

技术标签:

【中文标题】MKMapView:用户位置图钉颜色自动变为灰色【英文标题】:MKMapView: user location pin color change to gray automatically 【发布时间】:2015-06-16 12:12:16 【问题描述】:

这很奇怪,我有一个ViewController,它添加了一个MKMapView 作为子视图。应用程序中有一些步骤在执行时会导致用户定位销的颜色从蓝色变为灰色。

我在下面进行了调查

    代码库中没有改变tintColor的地方 使用KVO观察色调颜色 分析,在“viewWillAppear”(直到最后一行)tintColor 为“UIDeviceRGBColorSpace0 0.478431 1 1”,而在“viewDidAppear”中,tintColor 变为“UIDeviceWhiteColorSpace0.392275 0.8”

如果色彩空间发生变化,请详细说明。

 CGFloat mapviewY = self.searchView.frame.origin.y + self.searchView.frame.size.height + 1;
CGFloat mapviewHeight = self.view.frame.size.height - mapviewY;
_klMapView = [[KMapMapView alloc] initWithFrame:CGRectMake(kScreenOrigin,
                                                           mapviewY,
                                                           SCREEN_WIDTH,
                                                           mapviewHeight)];
_klMapView.mapViewDelegate = self;
[self.view addSubview:_klMapView];

谢谢 Ankit

【问题讨论】:

您是否在地图上随时添加了某种模式/窗口级别的视图? bhai @Ankit 提供一些代码。 @Templar nope 地图顶部没有添加子视图 @HarvantS。先生,请参考上面的代码 UIDeviceWhiteColorSpace 0.392275 0.8 这意味着您拥有 39% 的 RGB(红色、绿色、蓝色或白色三种颜色)和 80% 的透明度(A 或 alpha)。 【参考方案1】:

检查您是否正在使用 mapView(mapView: _, viewForAnnotation: _) 并将其格式化。

 func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! 
            if annotation.isKindOfClass(MKUserLocation) 
                return nil
            
            // rest of your code
    

【讨论】:

这是在绘制注释时发生的情况 我没听懂你想说什么?【参考方案2】:

好的,所以得到了答案,实际上 tintAdjustmentMode 正在改变。修复了它

mapView.tintAdjustmentMode = UIViewTintAdjustmentModeNormal;

【讨论】:

以上是关于MKMapView:用户位置图钉颜色自动变为灰色的主要内容,如果未能解决你的问题,请参考以下文章

当我在 mkMapView 中更改段时无法更改引脚颜色

从给定位置拖动图钉

在 iPhone MKMapView 中显示用户位置蓝点

如何在 MKMapView 中将图钉和地图保持在移动叠加层上方的中心

隐藏地图图钉注释图像

自定义图钉动画 - MKMapView