問題タブ [mkmapviewdelegate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
676 参照

ios - MKMapView のデリゲートが呼び出されない

次のように定義されたものを管理するUIViewControllerクラスがあります。MKMapView

このView Controllerの実装には、次のものがあります。

パブリックcenterMapInLoc:メソッドであるため、別のビュー コントローラーから呼び出します。アノテーションはそのようなメソッド内で作成されますがviewForAnnotation:、アノテーションが追加されたときにデリゲート メソッドは呼び出されません。loadViewデリゲートがメソッドに設定されているため、理由がわかりません。

前もって感謝します

0 投票する
0 に答える
74 参照

ios - 顧客の注釈ビューが必要 ビュー表示の呼び出し時にダブルタップして詳細注釈ビューを開く

**ここではまず、画像、ボタン、その他の情報を含むカスタム注釈ビューを作成します。画像マーカーとしてマップに配置します。ここでは、吹き出しビューも非表示にします。

2 番目の条件には、マップ マーカー イメージと表示吹き出しビューのみが含まれます。現在、吹き出しビューが開いていて、カスタム ビューをクリックすると問題が発生します。ダブルタップが必要です。

ボタン タップ イベントを取得した後、Map の選択解除メソッドを呼び出す最初のクリックを確認しました。

別の吹き出しビューまたは別のカスタム イメージ マーカー ビューのみをクリックすると、シングル タップで機能します。このシナリオでは、シングル タップで両方のケースを処理するにはどうすればよいですか?**

0 投票する
1 に答える
459 参照

ios - Swift: didDeselectAnnotationView 呼び出しの後、MKMapView 注釈が左上隅に表示されます

私はMKMapViewiOS アプリで を描画しています。このマップにはいくつかの注釈があり、それらを表すカスタム画像があります。特定の注釈が選択されると、画像がわずかに変化します (輝きがあります)。

これを行うには、mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!)デリゲート メソッドを使用してイメージを変更します (変更することによりview.annotation.image)。これはうまくいくようです。

ただし、mapView(mapView: MKMapView!, didDeselectAnnotationView view: MKAnnotationView!)メソッドを使用して画像を選択解除した後に元に戻すと、マップの左上隅に注釈が再描画されます。ユーザーがマップを操作すると、すぐに適切な場所にマップが再描画されるため、メソッド呼び出しの後、クリックまたは何かが行われるまでマップが更新されないようです。

これは実際に注釈の画像を変更する正しい方法ですか (現在の を上書きすることによってview.annotation.image)。もしそうなら、マップを更新する方法はありますか?

編集: また、新しい注釈を選択するたびに、マップの中心が約 100 ピクセル下にドラッグされることに気付きました。上記の 2 つの方法のいずれかを呼び出した後に行う必要があることはありますか?

0 投票する
3 に答える
1789 参照

ios - iOS 7 以降では、MKMapView は mapView:didUpdateUserLocation: forever を呼び出します

MapViewのボタンタップでは、次のアクションを実行します。

を確認しuserLocation pin、次のメソッドを呼び出してマップの位置を変更します。

私の問題は、マップがユーザーの位置を永遠に (ループで) 更新していることです。ユーザーの位置情報をアクティブ化した後、マップを使用することはできません。ユーザーの位置の更新を停止し、ユーザーがマップを使用できるようにするには何が必要ですか?

メソッドmapView:didUpdateUserLocation:は何度も呼び出されます。をMKMapViewDelegateインターフェイスに配置し、self.mapView.delegateを self に設定し、mapViewWillStartLocatingUser:andを呼び出しmapViewDidStopLocatingUser:のみで設定します。Dlog(@"")mapViewDidStopLocatingUser:呼び出されません。

0 投票する
1 に答える
2733 参照

swift - Swift 2 MKMapViewDelegate rendererForOverlay オプション性

Swift 1.2では、これがあります:

Swift 2 は の定義を ではなくをmapView:rendererForOverlay返すように変更しました。ただし、ドキュメント (Xcode 7) にはまだ次のように記載されています。MKOverlayRendererMKOverlayRenderer!nilMKOverlayRendererNilLiteralConvertible

戻り値

指定されたオーバーレイを地図上に表示するときに使用するレンダラー。nil を返すと、指定されたオーバーレイ オブジェクトのコンテンツは描画されません。

認識できないオーバーレイが渡された場合、何を返す必要がありますか?