我用几行代码和两个组件创建了一个测试项目:MKMapView
和UIButton
. 我勾选了mapView
选项 - Shows user location
。我还为按钮定义了一个动作,它将地图缩放到用户位置。
这是来自控制器的代码:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
self.mapView.userTrackingMode = MKUserTrackingModeFollowWithHeading;
self.mapView.delegate = self;
}
- (IBAction)changeRegion:(id)sender {
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.mapView.userLocation.coordinate, 200.0f, 200.0f);
[self.mapView setRegion:region animated:YES];
}
非常简单明了,不是吗?但是当我点击按钮时,我看到了奇怪的行为:地图视图缩放到指定区域然后返回到原始缩放。有什么问题?如何同时保持缩放和跟踪用户位置?
我注意到与 MKUserTrackingModeFollow 跟踪模式类似的行为。
PS我忘了提到这主要是iOS7的问题