MKMapKit 隐藏苹果地图
Posted
技术标签:
【中文标题】MKMapKit 隐藏苹果地图【英文标题】:MKMapKit hide Apple maps 【发布时间】:2014-03-20 06:37:48 【问题描述】:在苹果 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];
它有效,但它隐藏了带有叠加层的地图。不知道如何仅隐藏地图... 正如我们所见,有叠加层,为什么地狱......哦......请帮忙。 =(
【问题讨论】:
你为什么首先使用 OSM 而不是单独使用 MapKit?如果你使用 OSM,为什么还需要 MapKit? 您有指向包含该代码的“指南”的链接吗?依赖内部的、未记录的视图层次结构(尤其是 MKMapView)通常是一个非常糟糕的主意。 2Anna:我同意你的观点,但我必须这样做 =( 我不想把 mapkit 换成别的东西……太痛苦了。 2Thomas:因为我不想编写自己的 mapkit 或使用 3rd 方 mapkit。 @KaronatoR,写“2xyz”不会通知用户 xyz——改写“@xyz”。 【参考方案1】:在 ios 7 及更高版本上,您可能会查看 http://mapbox.com/mbxmapkit。但无论如何,您不应该混淆MKMapView
子视图层次结构。
【讨论】:
以上是关于MKMapKit 隐藏苹果地图的主要内容,如果未能解决你的问题,请参考以下文章