我有一个 MKMapView,但是当用户第一次登录并允许位置服务时,它不会显示位置。如果他们离开 View 再回来,它就会起作用。我正在使用下面列出的内容来解决该问题。它解决了问题,但用户无法再缩放,因为当更新位置时,会将它们带回指定位置。在使滚动工作时如何解决第一个问题。
这是我正在使用的:
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
MKUserLocation *myLocation = [self.schoolMap userLocation];
CLLocationCoordinate2D coord = [[myLocation location] coordinate];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coord, 9000, 9000);
[self.schoolMap setRegion:region animated:NO];
}
最佳答案
根本不要使用位置管理器。只需告诉 map View 跟踪用户的位置。然后实现这个委托(delegate)方法:
- (void)mapView:(MKMapView *)mapView
didUpdateUserLocation:(MKUserLocation *)userLocation {
CLLocationCoordinate2D coordinate = userLocation.location.coordinate;
MKCoordinateRegion reg =
MKCoordinateRegionMakeWithDistance(coordinate, 600, 600);
mapView.region = reg;
}
现在,每次用户移动时都会尝试设置 map ,所以如果您不想这样,请添加一个 BOOL 开关,以便您只在第一次执行此操作(本地图第一次 获取用户位置)。
关于ios - 第一次使用 MKMapView 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923624/