WKInterfaceMap Watchkit 上的动画注释
Animated annotation on WKInterfaceMap Watchkit
Watchkit WKInterfaceMap
有动画注释吗?
我有35张图片组成动画。目前我正在使用 NSTimer
调用
-(void)addAnnotation:(CLLocationCoordinate2D)location withImageNamed:(NSString *)name centerOffset:(CGPoint)offset
使用不同图片名称的方法,但结果效率不高,动画也不流畅,因为每次都必须先删除以前的注释并添加一个新的。
非常感谢comment/suggestion。
我认为这不能使用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动画实现地图标注
Watchkit WKInterfaceMap
有动画注释吗?
我有35张图片组成动画。目前我正在使用 NSTimer
调用
-(void)addAnnotation:(CLLocationCoordinate2D)location withImageNamed:(NSString *)name centerOffset:(CGPoint)offset
使用不同图片名称的方法,但结果效率不高,动画也不流畅,因为每次都必须先删除以前的注释并添加一个新的。
非常感谢comment/suggestion。
我认为这不能使用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动画实现地图标注