隐藏覆盖可见时隐藏MKMapView

时间:2010-11-11 05:04:14

标签: iphone ios objective-c mkmapview

我正在编写一个iPhone应用程序,其中我将自定义图像作为地图叠加在MKMapView之上。该图片是MKOverlayView,我想知道是否有办法隐藏或覆盖底层Google地图,以便用户在滚动我的自定义地图边界时永远不会看到它。任何建议将不胜感激。

3 个答案:

答案 0 :(得分:3)

MKTileOverlay具有canReplaceMapContent属性。将此设置为“是”,告诉MKMapView不要在叠加层下方绘制自己的磁贴。

https://developer.apple.com/library/ios/documentation/MapKit/Reference/MKTileOverlay_class/Reference/Reference.html

答案 1 :(得分:2)

在iOS 6上,以下内容将地图图块的Alpha通道设置为0(或1),具体取决于 show 标志。

注意,此方法采用某种方式对这些图块进行排序。如果Apple决定在iOS更新中更改MKMapView的内部工作方式,则此方法可能会中断。

if ( [mapView.subviews count] &&
     [((UIView *)[mapView.subviews objectAtIndex:0]).subviews count] ) {
    ((UIView *)[((UIView *)[mapView.subviews objectAtIndex:0]).subviews objectAtIndex:0]).alpha = show ? 1.0 : 0.0;
}

积分转到此处:http://iphonedevsdk.com/forum/iphone-sdk-development/84694-how-to-use-mapkit-without-maps.html

答案 2 :(得分:1)

我会说你可以在Google地图上方的MKOverlay的帮助下绘制一个非常大的多边形,并尝试在其上方叠加自定义地图,以便谷歌地图将被非常大的多边形和自定义地图隐藏和注释将会出现。

这可能不是一个好主意。但这是一个可以锻炼的技巧。