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