下面的代码是我一直用来放大用户位置的方法,但是一旦用户移动地图,它就会停止不断地重新缩放到它。这种方法的问题是,当它在应用程序中请求用户位置数据的权限时,我选择是,它什么也不做。我必须离开页面并在它正确缩放之前返回。
-(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 = .50; // Change these values to change the zoom
span.longitudeDelta = .50;
region.span = span;
[self.mapView setRegion:region animated:YES];
self.mapView.showsUserLocation = NO;}
}
上面的方法应该是监控用户位置的变化,一旦找到就设置位置。然后,我在 if 语句中设置了一个条件以使其停止 -否则当您移动地图时它会继续移动回用户位置。