iOSでマップ全体(MKMapView)へのユーザーインタラクションを無効にするにはどうすればよいですか?ズームやタップなどを無効にして、静的な地図を表示したいだけです。[self.mapView setUserInteractionEnabled:NO]
動作しませんでした。Googleまたはスタック上の他の回答を介して有効な解決策が見つかりませんでした(有効な回答が見つかった場合はplsリンク..)。iOS5をターゲットにする。これを行うためのより簡単な方法があるはずです。
4 に答える
重要なのは、ズームとスクロールを無効にすることです。
Objective-C の場合:
self.mapView.zoomEnabled = false;
self.mapView.scrollEnabled = false;
self.mapView.userInteractionEnabled = false;
またはスウィフト:
mapView.isZoomEnabled = false
mapView.isScrollEnabled = false
mapView.isUserInteractionEnabled = false
ちなみに、静的マップが必要な場合は、MKMapSnapshotter
代わりに使用することを検討してください。これにより、マップのイメージ表現が作成されます。注釈またはオーバーレイがある場合は、それらを手動でレンダリングする必要がありますが、ユースケースによっては、マップ スナップショットで十分な場合があります。
これは Interface Builder で次のように行うことができます。
この小さなハックはどうですか!すべて同じフレームの詳細を持つUIView
上に置くだけです。MKMapView
またbackgroundColor
、このビューのclearColor
MKAnnotationView の enabled プロパティを NO に設定できます
ズームを無効にするには、設定できますmapView.zoomEnabled = FALSE;
有効
注釈が有効かどうかを示すブール値。
@property (nonatomic, getter=isEnabled) BOOL enabled
討論
このプロパティのデフォルト値は YES です。このプロパティの値が NO の場合、注釈ビューはタッチ イベントを無視し、選択できません。サブクラスは、このプロパティの値に応じて、注釈の内容を異なる方法で表示する場合もあります。