1

マップでユーザーの位置をロックするために使用するこれら 2 つの方法があり、完全に機能します...

ただし、うまく機能しすぎていると思います笑、ユーザーがマップを移動してマップ上の別の場所を見るたびに...現在の場所があった場所にユーザーを強制的に戻します。

私の質問は、ユーザーがマップをスクロールした後、ユーザーの場所へのロックを無効にするにはどうすればよいかということだと思います。

- (void)viewDidLoad {

     // more code here that i didn't post

     [self.mapView.userLocation addObserver:self 
                            forKeyPath:@"location" 
                       options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld) 
                       context:NULL];
    }



- (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  = 1; // Change these values to change the zoom
    span.longitudeDelta = 1; 
    region.span = span;

    [self.mapView setRegion:region animated:YES];
   }
}
4

1 に答える 1

0

さて、私はそれを理解したと思います...私が現在上記で行っている方法は難しい方法のようです... iOS 5では、この方法を使用することが許可されており、魅力的に機能しました

[mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
于 2012-07-12T02:54:24.193 に答える