2014-01-14 161 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的子項,因此無法直接限制地圖向一個方向滾動。也許可以嘗試在地圖視圖頂部添加一個透明的滾動視圖,並轉發您認爲適合您所需行爲的觸摸。