隐藏一个MKMapView,而覆盖可见

问题描述:

我正在写一个iPhone应用程序,我将一个自定义图像作为地图覆盖在MKMapView之上。该图片是MKOverlayView,我想知道是否有办法隐藏或覆盖底层的Google地图,以便用户在滚动出我的自定义地图范围时从不会看到它。任何建议,将不胜感激。隐藏一个MKMapView,而覆盖可见

+0

的MKMapView是在OS 6+没有GoogleMap的 - 只是FYI – 2013-05-16 08:42:48

+0

更新的苹果地图 – 2016-01-22 20:37:41

我会告诉你可以在谷歌地图上方MKOverlay的帮助下绘制一个非常大的多边形,并尝试覆盖上面的自定义地图,这样谷歌地图将被非常大的多边形和您的自定义隐藏地图和注释将出现。

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

+1

问题所以这里的问题是,使用MKOverlay仍然需要显著时间绘制到屏幕上。在此期间,用户通常可以看到潜在的Google地图 - 我想要的是防止用户从一开始就看到它。 – mag725 2010-11-19 16:01:16

+1

当您使用MKMapView时,您处于Google Earth Api条款和条件下,因此不会隐藏,删除或停止从Google地球加载的地图。您将无法在MapKit中找到任何属性来禁用正在加载的地图。 – iPrabu 2010-11-19 16:51:04

在iOS 6上,根据显示标志,以下设置地图切片的Alpha通道为0(或1)。

注意该方法假定这些瓷砖排序的某种方式。如果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

MKTileOverlaycanReplaceMapContent属性。将其设置为YES以告知MKMapView不要在覆盖图下面绘制自己的图块。

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

+1

恩,我确实包括了必要的部分。设置你的overlay.canReplaceMapContent = YES; 我差不多正是你刚刚说的那样做的...... – Kevin 2014-09-12 16:32:31

+0

@Pawan:对我来说看起来没问题。如果答案错误,请解释为什么发表评论。 – 2014-09-12 17:56:53