0

MKMapView でアニメーション化可能な注釈ビューを実行したいのですが、アニメーションをスムーズにしたい (このようなものではない) と、CoreAnimation がそれを行うための最良の方法であると考えています。

現在、MKAnnotation デリゲートとして CALayer のサブクラスを作成し、CoreAnimation を使用して座標プロパティをアニメーション化することを考えています。これを MKAnnotationView のレイヤーとして使用することもできると思います。

しかし、レイヤーの階層を変更したり、ビューレイヤーにいくつかの 3d 変換を行う以上のことを行ったりしたことがないため、これが CoreAnimation に関する私の理解の限界です。

これは問題に対する良いアプローチだと思いますか?

そこにたどり着くために共有できるコードはありますか?

前もって感謝します。

編集: MKAnnotation デリゲートを NSObject のサブクラスにするなど、これを行うためのより良いアプローチがあると思われる場合は、それも教えてください。私の目標は、座標をスムーズにアニメーション化することであり、そのための QuartzCore フレームワークを考えました。

4

1 に答える 1

0

レイヤーは、他のレイヤーまたはビューに関連付けられています。

MKAnnotation オブジェクトは、NSObject から直接派生するデータ コンテナ オブジェクトです。レイヤーを「MKAnnotation のデリゲート」にすることはできません

MKAnnotationView のカスタム サブクラスをセットアップし、レイヤーとアニメーションをカスタム サブクラスに追加します。マップ ビューは、mapView:viewForAnnotation: マップ ビュー デリゲート メソッドに応答して、カスタム アノテーション ビュー オブジェクトを作成して返します。

私はこれを自分で試したことはありませんが、うまくいくはずです。ドキュメントによると、マップがスケーリングされても注釈ビューはスケーリングされないため、注釈ビューを固定サイズで作成するか、マップの縮尺が変更されたときに注釈ビューをスケーリングするコードを賢く作成する必要があります。

于 2012-10-08T15:14:06.243 に答える