1

我有这两种方法可以用来锁定用户在地图中的位置,而且效果很好……

但是,我想它工作得很好,哈哈,每当我用户移动地图以查看地图上的其他位置时......它会迫使用户回到当前位置所在的位置。

所以我想我的问题是,如何在用户滚动地图后禁用对用户位置的锁定。

- (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 回答