2014-01-14 134 views
0

如何防止无限水平滚动MKMapView。 我使用的是叠加显示自定义地图防止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

任何其他方式?

回答

0

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