IOS7将MapView限制为特定区域或区域

时间:2013-10-31 20:09:59

标签: ios7 mkmapview mkoverlay

是否有人知道如何将mapview限制到某个区域但仍允许在区域内缩放和滚动,但锁定地图以使其不会超出该区域。我尝试过使用UIScrollViewDelegate,但它对IOS6及以上版本无效。我也尝试过使用regiondidchanged但是没有锁定滚动并在区域外平移。

感谢,

约翰

1 个答案:

答案 0 :(得分: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:0];

通过

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

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

po [self.mapView recursiveDescription]