Iphone 覆盖可见时隐藏MKMapView

Iphone 覆盖可见时隐藏MKMapView,iphone,ios,objective-c,mkmapview,Iphone,Ios,Objective C,Mkmapview,我正在编写一个iPhone应用程序,其中我将自定义图像作为地图覆盖在MKMapView上。该图像是一个MKOverlayView,我想知道是否有办法隐藏或覆盖底层谷歌地图,以便用户在滚动出我的自定义地图边界时永远不会看到它。任何建议都将不胜感激。我建议您可以在谷歌地图上方的MKOverlay帮助下绘制一个非常大的多边形,并尝试在其上方覆盖您的自定义地图,以便谷歌地图将被非常大的多边形隐藏,您的自定义地图和注释将显示出来 这可能不是个好主意。但这是一个可以锻炼身体的技巧。在iOS 6上,下面根据显

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

我建议您可以在谷歌地图上方的MKOverlay帮助下绘制一个非常大的多边形,并尝试在其上方覆盖您的自定义地图,以便谷歌地图将被非常大的多边形隐藏,您的自定义地图和注释将显示出来


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

在iOS 6上,下面根据显示标志将地图平铺的alpha通道设置为0(或1)

注意此方法假定这些瓷砖的订购方式是特定的。如果苹果决定在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;
}

这里有积分:

MKTileOverlay
有一个
canReplaceMapContent
属性。将该选项设置为“是”,告诉
MKMapView
不要在覆盖下绘制自己的平铺


所以这里的问题是,使用MKOverlay仍然需要很长的时间才能绘制到屏幕上。在这段时间内,用户通常可以看到底层的谷歌地图-我想首先阻止用户看到它。当您使用MKMapView时,您的地图处于谷歌地球Api条款和条件下,因此没有机会隐藏、删除或停止从谷歌地球加载地图。您将无法在MapKit中找到任何属性来禁用正在加载的地图。MKMapView在os 6+上不是Google地图——仅供参考更新了Apple mapsUmm的问题,我确实包含了关键部分。设置覆盖。canReplaceMapContent=YES;我几乎完全按照你刚才说的做了…@Pawan:我看没问题。如果答案是错误的,请在评论中解释原因。