有没有为WKInterfaceMap
Watchkit制作动画注释?
我有35张图像来组成动画。目前我正在使用NSTimer
来调用
-(void)addAnnotation:(CLLocationCoordinate2D)location withImageNamed:(NSString *)name centerOffset:(CGPoint)offset
具有不同图像名称的方法但结果效率不高且动画不流畅,因为每次必须首先删除之前的注释并添加新注释。
非常感谢任何评论/建议。
答案 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动画实现地图注释。