Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 即使I';你设置了覆盖层吗?_Ios_Objective C_Mkmapview - Fatal编程技术网

Ios 即使I';你设置了覆盖层吗?

Ios 即使I';你设置了覆盖层吗?,ios,objective-c,mkmapview,Ios,Objective C,Mkmapview,我对Objective C和iOS编程有点陌生,最近我一直在探索MKMapView,并且我能够成功地添加注释 [self.mapView addAnnotations:annotations] 但是, 当我尝试添加覆盖时,我遇到了问题 我添加覆盖,然后需要添加setVisibileMapRect 当我写这样的东西时- [self.mapView addOverlay:MyOverlayObject] BOOL mapContainsOverlay = MKMapRectCont

我对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

知道为什么
MapContainesOverlay
是0吗?

如果地图是在英格兰,而覆盖在新西兰,那么
self.mapView.visibleMapRect
不包含
[MyOverlayoutObject boundingMapRect]
,因此
mkMapRecContainesRect
返回false(打印为0)。我不知道你的rect是什么,但我猜rect2不适合“完全在rect1内”。e、 法国不包含欧洲


如果您想确保您的地图正在查看需要覆盖的位置。

MyOverlayObject是什么类型的覆盖?NSLog您正在比较的两个矩形的值。@Anna我用于OverlyObject。当我记录它们时,它们不一样。他们非常不同。我不明白的是它们为什么不同?visibleMapRect是地图视图中当前显示的区域,它可能不同于定义覆盖范围的覆盖的boundingMapRect。问题是覆盖的范围是否完全适合当前查看的区域。当我设置visible map rect时,它会进入某种无限循环。这听起来像是另一个问题,在这个问题中,您应该共享设置maprect的代码和对其作出反应的代码。