1

需要苹果 MapKit 的帮助。我正在使用带有 Tile Overlay 的 OSM 地图,效果非常好。但是有一个小问题我想解决。我想隐藏苹果地图,因为它们在 OSM 地图下渲染,当 OSM 地图加载时,苹果地图是可见的,看起来很奇怪。

设备也在渲染两张不好的地图……你知道的。

在指南中,我用来添加 OSM 地图的是以下代码:

if ( [map.subviews count] && [((UIView *)[map.subviews objectAtIndex:0]).subviews count] )
    ((UIView *)[((UIView *)[map.subviews objectAtIndex:0]).subviews objectAtIndex:0]).alpha = 0;

首先,这段代码对我不起作用。无论如何将 alpha 设置为 nil 并不等于不渲染。但是如果没有办法停止渲染 Apple 地图,我可以使用 alpha。

所以需要一些帮助,需要隐藏苹果地图。

非常感谢您的时间。

更新:

我试图记录 MKMapKit 结构。这里是:

- MKMapView
- - UIView
- - - MKBasicMapView
- - - - _MKMapLayerHostingView
- - - MKScrollContainerView
- - - - MKOverlayContainerView
- - - MKNewAnnotationContainerView
- - MKAttributionLabel

然后我尝试了这个东西:

UIView * ll = [[[[[[map subviews] objectAtIndex: 0] subviews] objectAtIndex: 0] subviews] objectAtIndex: 0];
[ll removeFromSuperview];

它有效,但它隐藏了带有叠加层的地图。不知道如何只隐藏地图......正如我们看到的有叠加层,为什么地狱......哦......请帮助。=(

4

1 回答 1

0

在 iOS 7 及更高版本上,您可能会查看http://mapbox.com/mbxmapkit。但无论如何,您不应该弄乱MKMapView子视图层次结构。

于 2014-03-20T17:29:58.883 回答