如何防止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 :(得分:0)
由于地图不是UIScrollView的子项,因此您无法直接在一个方向上限制地图滚动。也许尝试在地图视图顶部添加透明滚动视图,并转发您认为足以满足您所需行为的触摸。