2

ウォッチキットのアニメーション注釈を付ける方法はWKInterfaceMapありますか?

アニメーションを形成するための 35 枚の画像があります。現在、私はNSTimerwhich を呼び出すを使用しています

-(void)addAnnotation:(CLLocationCoordinate2D)location withImageNamed:(NSString *)name centerOffset:(CGPoint)offset

異なる画像名のメソッドですが、最初に前の注釈を削除して新しい注釈を追加する必要があるたびに、結果は効率的ではなく、アニメーションはスムーズではありません。

コメント/提案は大歓迎です。

4

1 に答える 1

0

これは WKInterfaceMap では実現できないと思いますが、WKInterfaceImage では実現できると思います。すべてのステップを実装したわけではありませんが、フローは次のようになります。

MKMapSnapshotter を使用して、UIImage として選択された緯度と経度を中央に持つマップのスナップショットを生成します。

MKMapSnapshotOptions * snapOptions= [[MKMapSnapshotOptions alloc] init];
CLLocation * Location = [[CLLocation alloc] initWithLatitude:23.0300 longitude:72.5800];
MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(Location.coordinate, 300, 300);
snapOptions.region = region;
snapOptions.size = CGSizeMake(300, 300);
snapOptions.scale = [[UIScreen mainScreen] scale];

MKMapSnapshotter *mapSnapShot = [[MKMapSnapshotter alloc] initWithOptions:snapOptions];
[mapSnapShot startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
    if (error) {
        NSLog(@"[Error] %@", error);
        return;
    }

    UIImage *image = snapshot.image;//map image
    NSLog(@"%@",image);
    [self.mapImage setImage:image];
}];
  • リソースにはすでに注釈画像があるので、動的に注釈画像のマージされた画像を作成して、スナップショット画像をマップします。上からアニメーションを追加する場合は、マップ イメージのポイント (150,0) から (150,150) までの注釈イメージをレンダリングする必要があります。アニメーション用に 15 枚の画像を生成する場合は、15 の制限でループを設定し、毎回注釈画像の Y を 150/15 = 10 に増やす必要があります。これらのマージされた画像を NSMutableArray で追跡します。画像のレンダリングについては、この回答を検討してください。

  • これらの動的に生成された画像の NSMutableArray を使用し、WKInterfaceImage の Animation に設定して、マップ アノテーションを実現します。

于 2015-06-08T04:37:28.423 に答える