WKInterfaceMap Watchkit上的动画注释

时间:2015-06-07 08:22:46

标签: ios animation annotations apple-watch wkinterfacegroup

有没有为WKInterfaceMap Watchkit制作动画注释?

我有35张图像来组成动画。目前我正在使用NSTimer来调用

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

具有不同图像名称的方法但结果效率不高且动画不流畅,因为每次必须首先删除之前的注释并添加新注释。

非常感谢任何评论/建议。

1 个答案:

答案 0 :(得分:0)

我认为使用WKInterfaceMap无法实现这一点,但可以使用WKInterfaceImage实现。我没有实现所有步骤,但流程可以是,

使用MKMapSnapshotter生成使用选定的lat-long作为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];
}];
  • 我们已经在资源中拥有Annotation图像所以动态创建 合并注释图像的图像以映射快照图像。如果你想 要从顶部添加动画,您需要渲染注释图像 从地图上的点(150,0)到(150,150)。如果你正在产生 15个动画图像然后你需要设置为15限制和循环 每次将注释图像的Y增加到150/15 = 10.保持跟踪 NSMutableArray中的这些合并图像。您可以考虑this answer来渲染图像。

  • 使用这些动态生成的NSMutableArray图像并设置为 WKInterfaceImage动画实现地图注释。