数行のコードと と の 2 つのコンポーネントを含むテスト プロジェクトを作成しまし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の問題であることを忘れていました