2016-12-03 4 views
0

次のコードを使用して、MapViewのユーザーの現在地を拡大しています。しかし、私はまだユーザーが設定された地域の外にスクロールできるようにしたい(マップ上の他のユーザーを見ることができるように)。現在、ユーザーが設定した地域の外にスクロールすると、MapViewはユーザーを設定された地域の中に戻します。設定された範囲外にスクロールできるようにしながら、以下のコードを実行するにはどうすればよいですか?スクロールを制限せずにMapViewで現在のユーザーの場所を拡大しますか?

MapViewController.m

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 
{ 

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 1300, 1300); 
    [self.mapView setRegion:[self.mapView regionThatFits:region] animated:YES]; 


} 

答えて

1

私は、ユーザーの場所を示し、また、ユーザーの場所を追跡します短い簡単なアプリを書きました。アプリはユーザーの場所に焦点を当て、地図ビューをスクロールしない限り、ユーザーの場所を中央に維持します。

スクロールを開始するとすぐに、マップビューは自動的に戻ってこないので、マップビューはユーザーの位置から離れて移動します。ユーザーの場所に戻るために、「フォーカス」というボタンを追加しました。このボタンは、マップビューをユーザーの位置に戻し、ユーザーが再びスクロールを開始するまでユーザーの場所に再びフォーカスします。

アプリは、それはMKMapViewで2つのプロパティを使用して、実際には非常に簡単です:あなたは、もちろん、地域を設定することで、ユーザーの場所にしてさらにズームすることができます

var showUserLocation: Bool {get set} 
var userTrackingMode: MKUserTrackingMode {get set} 

、それは簡単で行われますsetRegion(_:animated :)

コードはGithub hereにあり、ダウンロードしてダウンロードしてください。シミュレータで簡単にテストできます。

これが役立つかどうか教えてください。

+0

これは意味があります。つまり、コードをviewWillAppearに移動すると、userLocationは未定義です。 viewWillAppearでそれを再定義するにはどうすればよいですか(私は現在voidメソッドを終了しています)? – Brittany

+0

申し訳ありませんが、ユーザーの場所が未定義であるということはどういう意味ですか? – MacUserT

+0

私の最後を見てください。それはあなたの質問に答えますか? – MacUserT

関連する問題