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

时间:2014-11-24 19:24:18

标签: ios mapkit

这个问题一直困扰着我:我的地图,当我在我的iOS设备上运行时,每当我滚动查看我最近丢弃的不同引脚时,我已经开始'回旋镖'回到用户的位置。奇怪的是,它最近才开始这样做。

这是我的代码:

- (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];
}

关于如何处理用户位置问题的任何想法?

1 个答案:

答案 0 :(得分:0)

您的代码说:

 mapView.showsUserLocation = YES;

这意味着地图视图跟踪用户位置。它想继续展示它。如果您希望地图视图停止这样做,请停止跟踪用户位置。

通常,您将调整MKUserTrackingMode。 以及让用户这样做的最简单方法是提供MKUserTrackingBarButtonItem。

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