0
下面的代碼是我一直用來放大用戶位置的方法,但是一旦用戶移動地圖,就會阻止它不斷地重新縮放。這種方法的問題在於,當它嚮應用中的用戶位置數據請求權限時,我選擇是,它不會執行任何操作。我必須離開頁面並返回,然後才能正確放大。iOS6 iPhone應用程序 - 如何只縮放到userLocation一次?
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if ([self.mapView showsUserLocation])
{
MKCoordinateRegion region;
region.center = self.mapView.userLocation.coordinate;
MKCoordinateSpan span;
span.latitudeDelta = .50; // Change these values to change the zoom
span.longitudeDelta = .50;
region.span = span;
[self.mapView setRegion:region animated:YES];
self.mapView.showsUserLocation = NO;}
}
上面的方法應該監視用戶位置的變化,然後設置一旦找到它的位置。然後,我在if語句中設置一個條件使其停止 - 否則當您移動地圖時,它會一直移回userlocation。