2013-10-31 31 views
0

有没有人知道如何限制地图视图到某个区域,但仍然允许在区域内缩放和滚动,但锁定地图使其不会出现在区域外。我曾尝试使用UIScrollViewDelegate,但它不适用于IOS6及更高版本。我也尝试过使用regiondidchanged,但不锁定区域外的滚动和平移。IOS7将MapView限制在某个区域或区域

感谢,

约翰

回答

0

我在regiondidchanged方法之前完成。 事实上,如果你的地图的中心来到你定义的区域(测试经度和纬度)外,刚刚重新映射到该地区的中心......

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

编辑

有你试图考虑这个项目:GeoFencer?它似乎对应,除了有他的算法,当搜索mapView'scrollview一个问题,但它可以通过

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

尝试使用来解决我想通过更换

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

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

po [self.mapView recursiveDescription] 
+0

没有工作。调用regionDidChangeAnimated为时已晚。在事件被调用的时候,mapview已经改变了。我需要防止该区域被移动,而用户无法通过滚动或其他方式看到移动的mapview。 –

+0

我还没找到有效的答案。 –