2013-10-31 47 views
0

有沒有人知道如何限制地圖視圖到某個區域,但仍然允許在區域內縮放和滾動,但鎖定地圖使其不會出現在區域外。我曾嘗試使用UIScrollViewDelegate,但它不適用於IOS6及更高版本。我也嘗試過使用regiondidchanged,但不鎖定區域外的滾動和平移。IOS7將MapView限制在某個區域或區域

感謝,

約翰

回答

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:1]; 

嘗試使用來解決我想通過更換

UIScrollView * scroll = [[[[mapView subviews] objectAtIndex:0] subviews] objectAtIndex:0]; 

調試器使用此命令在視圖層次結構中找到正確的滾動視圖

po [self.mapView recursiveDescription] 
+0

沒有工作。調用regionDidChangeAnimated爲時已晚。在事件被調用的時候,mapview已經改變了。我需要防止該區域被移動,而用戶無法通過滾動或其他方式看到移動的mapview。 –

+0

我還沒找到有效的答案。 –