2011-08-03 13 views
0

マップビューで特定のマップ領域を表示したい場合(アプリが起動するたびに同じですか?)、どのように設定したらよいでしょうか? また、ユーザーがこの領域からスクロールしてしまうことを防ぎ、ユーザーがスクロールしすぎるのを防ぐこともできます。初めて地図を表示するにはどうすればよいでしょうか?

+0

それでもズームすることができながら地域から離れてスクロールからユーザーを防止することに解決策を見つけますか? – Ares

答えて

4

1特定領域

MKCoordinateRegion predefinedRegion; 
[mapView setRegion:predefinedRegion animated:YES]; 

2.防止スクロール

mapView.scrollEnabled = NO; 

3防止ズーミング

mapView.zoomEnabled = NO; 

ズームレベルを制限したい場合は、ズームを有効にすると領域が効果的に変更されるため、少し複雑になります。これを管理する最善の方法は、恐らくmapView:regionWillChangeAnimated:などのMKMapViewDelegateプロトコルメソッドを使用することです。

乾杯、
サシャ

+0

合意。小さな追加:私は '[mapView setRegion:animated:]'に 'animated'の' NO'を渡すことを推奨しますが、起動時にワールドビューからズームインするのではなく、直ちに領域を表示します。アプリがいつでも特定の地域に誰かを制限したい場合は、まず全世界を表示して制限することはあまり意味がありません。ユーザーに混乱を招く可能性があります。ありがとう。 – Matt

+0

将来の参照のために、このような(中央ロンドンの)地域を設定するために:predefinedRegion.span.latitudeDelta = 0.010f; predefinedRegion.span.longitudeDelta = 0.010f; predefinedRegion.center.latitude = 51.512f; predefinedRegion.center .longitude = -0.144f; – cannyboy

+0

@Mattあなたは絶対に正しいです:-)。 – Mundi

関連する問題