Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
IOS7将MapView限制为某个区域或区域_Ios7_Mkmapview_Mkoverlay - Fatal编程技术网

IOS7将MapView限制为某个区域或区域

IOS7将MapView限制为某个区域或区域,ios7,mkmapview,mkoverlay,Ios7,Mkmapview,Mkoverlay,是否有人知道如何将地图视图限制在某个区域,但仍允许在该区域内缩放和滚动,但锁定地图,使其不会超出该区域。我尝试过使用UIScrollViewDelegate,但它不适用于IOS6及更高版本。我还尝试使用regiondidchanged,但这不会锁定区域外的滚动和平移 谢谢 John我以前在regiondidchanged方法中做过。 事实上,如果地图的中心位于定义的区域(测试纬度和经度)之外,只需将地图重置为区域的中心 if(![self isValid:self.mapView.center]

是否有人知道如何将地图视图限制在某个区域,但仍允许在该区域内缩放和滚动,但锁定地图,使其不会超出该区域。我尝试过使用UIScrollViewDelegate,但它不适用于IOS6及更高版本。我还尝试使用regiondidchanged,但这不会锁定区域外的滚动和平移

谢谢


John

我以前在regiondidchanged方法中做过。 事实上,如果地图的中心位于定义的区域(测试纬度和经度)之外,只需将地图重置为区域的中心

if(![self isValid:self.mapView.center])
    [self.mapView setRegion:defaultValidRegion animated:YES];
编辑

你试过考虑这个项目吗?这似乎是对应的,只是他的算法在搜索mapView的滚动视图时有一个问题,但我认为可以通过替换

UIScrollView * scroll = [[[[mapView subviews] objectAtIndex:0] subviews] objectAtIndex:0];

尝试在调试器中使用此命令在视图层次结构中找到正确的scrollview

po [self.mapView recursiveDescription]

那没用。调用regionDidChangeAnimated太晚了。调用该事件时,地图视图已更改。我需要防止在用户看不到地图视图的情况下移动区域,可能是通过滚动或其他方式。
po [self.mapView recursiveDescription]