以下のコードは、ユーザーの場所にズームインするために使用している方法ですが、ユーザーが地図を移動すると、その場所に継続的に再ズームするのを停止します。この方法の問題は、アプリ内のユーザーロケーションデータの許可を求められ、[はい]を選択しても、何も実行されないことです。正しくズームする前に、ページを離れて戻る必要があります。
-(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ステートメントに条件を設定して停止させます。それ以外の場合は、マップを移動したときにユーザーの場所に戻り続けます。