我对Objective C和iOS编程有点新,我最近一直在探索MKMapView,并且我已经能够成功添加注释。
[self.mapView addAnnotations:annotations]
然而,
当我尝试添加叠加层时,我遇到了问题,
我添加了叠加层,然后我需要添加setVisibileMapRect
。
当我写这样的东西时 -
[self.mapView addOverlay:MyOverlayObject]
BOOL mapContainsOverlay = MKMapRectContainsRect(self.mapView.visibleMapRect,
[MyOverlayObject boundingMapRect]);
if (mapContainsOverlay) {
//This is not getting executed.
}
NSLog(@" %hhd", mapContainsOverlay) //Prints 0
任何想法为什么mapContainsOverlay
为0?
答案 0 :(得分:0)
如果地图正在查看英格兰,并且叠加层位于新西兰,则self.mapView.visibleMapRect
不包含[MyOverlayObject boundingMapRect]
,因此MKMapRectContainsRect
返回false(打印为0)。我不知道你的作品是什么,但我猜测rect2不适合“完全在rect1”as per the spec内。例如法国不包含欧洲。
如果您想确保地图正在查看所需的重叠位置set the visible map rect。