0

私は MKMapView を使用してユーザーの進行状況を追跡するアプリに取り組んでおり、追跡を開始するために吹き出しボタンを使用する iOS 7 Apple Maps メソッドを採用すると考えました。ただし、私の場合、ユーザーは同じビューにとどまるため、追跡が既に進行中であることを示すようにボタンを変更する必要があります。

簡単なアニメーションを作成し、ボタンがタップされたときにボタンのレイヤーに追加しました。正常に動作します。ユーザーがコールアウトを閉じてから戻すと、問題が発生します。アニメーションをレイヤーに戻すコードが didSelectAnnotation にあるにもかかわらず、表示されるビューにはアニメーションが配置されていません。この投稿によると:

UIButton が MKAnnotationView で正しく読み込まれない

これは、didSelectAnnotation が呼び出される前に注釈ビューが準備されているためです。コールアウトが再表示されたときに、これを行うことができる他の場所である viewForAnnotation が呼び出されないため、事前に十分に準備する必要があります。

それを知った今、これを機能させる方法は考えられませんが、誰かが答えを持っていることを願っています.

編集:

viewForAnnotation のボタンにアニメーションを追加して一時停止し、ボタンがタップされたときに再開しようとしました。ただし、ボタンをタップするとアニメーションが表示されなくなります - mapkit がそれを取り除いたようです。didSelectAnnotation にはありますが、2 つの間のどこかで消えてしまいます。

アニメーションを MKAnnotationView 全体に追加できますが、意図したとおりに動作しません。コールアウトを含む全体がアニメーション化され、非常に奇妙に見えます。また、このビューでアニメーションを一時停止すると、吹き出しの表示が妨げられます。

ここでやろうとしているのは、ボタン イメージを「パルス」にして、既にタップされており、追跡が進行中であることを示し、タップ可能に見えるようにして、ユーザーがもう一度タップして追跡を停止できることを知らせることです。

私はここで私が SOL だと感じています… 誰か、私が間違っていることを証明してください!

4

1 に答える 1

0

答えは、完全にカスタムの吹き出しを使用することです。以下の投稿とサンプルコードをガイドとして使用し、動作させることができました。

http://blog.asynchrony.com/2010/09/building-custom-map-annotation-callouts-part-1/ http://blog.asynchrony.com/2010/09/building-custom-map-annotation- callouts-part-2/

于 2013-10-13T23:08:27.670 に答える