iOS 8-地图不断恢复到用户位置

iOS 8-地图不断恢复到用户位置,ios,mapkit,Ios,Mapkit,这个问题一直困扰着我一段时间:当我在iOS设备上运行地图时,每当我滚动查看最近掉到的另一个pin码时,地图就开始“回飞”到用户的位置。奇怪的是,它最近才开始这样做 以下是我的代码: - (void)viewDidLoad { [super viewDidLoad]; self.searchBar.delegate = self; self.locationManager = [[CLLocationManager alloc] init]; self.locationMa

这个问题一直困扰着我一段时间:当我在iOS设备上运行地图时,每当我滚动查看最近掉到的另一个pin码时,地图就开始“回飞”到用户的位置。奇怪的是,它最近才开始这样做

以下是我的代码:

- (void)viewDidLoad
{
   [super viewDidLoad];
   self.searchBar.delegate = self;
   self.locationManager = [[CLLocationManager alloc] init];
   self.locationManager.delegate = self;

   if ([self.locationManager respondsToSelector:@selector
     (requestWhenInUseAuthorization)]) {
    [self.locationManager requestWhenInUseAuthorization];
     mapView.showsUserLocation = YES;
   }
   [self.locationManager startUpdatingLocation];
}

#pragma mark cllocation delegate methods
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:
(NSArray *)locations
{
NSLog(@"location info object=%@",[locations lastObject]);
[self.locationManager stopUpdatingLocation];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Success"   
 message:@"Location      
received" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
关于如何处理用户位置问题,您有什么想法吗?

您的代码说:

 mapView.showsUserLocation = YES;
这意味着地图视图正在跟踪用户位置。它想继续展示它。如果希望地图视图停止这样做,请停止跟踪用户位置

通常,您将调整MKUserTrackingMode。要做到这一点,并让用户这样做,最简单的方法是提供一个MKUserTrackingBarButtonItem


此外,请确保没有在其他地方设置贴图区域。如果不小心的话,设置地图区域可以防止滚动地图。

Matt的回答是正确的,地图视图正在跟踪用户的位置。缺少的部分是如何阻止这种情况。为了阻止它跟踪用户的位置,请在告诉locationManager停止更新位置时,尝试将showsUserLocation设置为NO。试试看会发生什么。这个答案正确吗<代码>显示位置仅控制是否显示当前位置批注。如果
userTrackingMode
设置为
MKUserTrackingModeNone
,则地图不应缩放到user@Paulw11你真的读过我的答案吗?这就是我说的:“通常,您会调整MKUserTrackingMode。”问题是用户跟踪模式不是
MKUserTrackingModeNone
。这是
MKUserTrackingModeFollow
。因此,它是这样的。您说“mapView.showsUserLocation=YES;这意味着map view正在跟踪用户位置。”这意味着这是OP的问题-但此设置本身不会导致map view的焦点发生更改,而这正是当前的问题。您讨论了提供跟踪模式按钮,但没有明确引用可能存在争议的属性或值。也许你认为OP可以阅读这方面的文档。@Paulw11我同意你的看法。我确实在猜测OP的代码中还可能发生了什么。是的,我的目标确实是将OP指向正确的方向——根据我们掌握的信息,这是我们所能做的一切。