0

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

谢谢,

约翰

4

1 回答 1

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];

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

po [self.mapView recursiveDescription]
于 2013-11-01T23:37:58.710 回答