防止MKMapView无休止地水平滚动

时间:2014-01-14 21:44:53

标签: ios ios7 mkmapview mkoverlay

如何防止MKMapView无限水平滚动。 我正在使用叠加层来显示自定义地图

MKTileOverlay *overlay = [[MKTileOverlay alloc]initWithURLTemplate:tileTemplate];
[mapView addOverlay:overlay];
 mapView.visibleMapRect = MKMapRectWorld;

当用户水平滚动并到达MKMapRectWorld的结尾时,地图会重复出现。

我看了Restrict MKMapView scrolling 但代码看起来相当复杂,人们可以在动画回滚之前看到一些重复的地图。

-(void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {

BOOL mapContainsOverlay = MKMapRectContainsRect(MKMapRectWorld,self.mapView.visibleMapRect);

if (!mapContainsOverlay) {


    [self.mapView setVisibleMapRect:MKMapRectWorld animated:NO];
}

} //或regionWillchangeAninmate

还有其他方式吗?

1 个答案:

答案 0 :(得分:0)

由于地图不是UIScrollView的子项,因此您无法直接在一个方向上限制地图滚动。也许尝试在地图视图顶部添加透明滚动视图,并转发您认为足以满足您所需行为的触摸。