私は現在 mapkit で作業しており、立ち往生しています。
使用しているカスタム注釈ビューがあり、イメージ プロパティを使用して、独自のアイコンでマップ上のポイントを表示したいと考えています。私はこれでうまくいきました。しかし、私がやりたいことは、デフォルトの吹き出しビュー (注釈アイコンに触れたときにタイトル/サブタイトルとともに表示されるバブル) をオーバーライドすることです。吹き出し自体を制御できるようにしたい: マップキットは、左右の補助的な吹き出しビューへのアクセスのみを提供しますが、吹き出しの吹き出しのカスタム ビューを提供したり、サイズをゼロにしたり、その他のものを提供したりする方法はありません。
私の考えは、自分の selectAnnotation/deselectAnnotation をオーバーライドMKMapViewDelegate
し、カスタム注釈ビューを呼び出して独自のカスタム ビューを描画することでした。これは機能しますが、カスタム アノテーション ビュー クラスでcanShowCallout
が に設定されている場合のみです。YES
これを設定している場合、これらのメソッドは呼び出されませんNO
(これが必要なので、デフォルトの吹き出しバブルは描画されません)。そのため、ユーザーがマップ上のポイントに触れた (選択した) か、注釈ビューの一部ではないポイントに触れた (削除した) かを知る方法はありません。
別の道をたどって、マップ内のすべてのタッチイベントを自分で処理しようとしましたが、これがうまくいかないようです。マップ ビューでタッチ イベントをキャッチすることに関連する他の投稿を読みましたが、それらは私が望んでいるものではありません。描画する前に吹き出しの吹き出しを削除するためにマップ ビューを掘り下げる方法はありますか? 私は途方に暮れています。
助言がありますか?明らかな何かが欠けていますか?