WatchKit:如何在objC中动态设置存储在Nsmustablearray中的图像的动画



这是我的疑问

如何直接从nsmutalearray运行gif图像,我通过将其分配给Wkinterfaceimage来动态存储图像

目前我正在处理分配给wkinterfaceimage的GIf图像。我在运行时通过转换gif图像将一组图像存储在Mutablearray中。如何将该数组分配给wkinterfaceimage以显示运行gif图像。我发现swift中有几个教程试图在OBJ C中实现,Plz让我知道了你在目标C中的想法和代码

这是我的代码

 [imageView setImage:[frames objectAtIndex:0]];
 [imageView startAnimatingWithImagesInRange:NSMakeRange(0,frames.count) duration:1 repeatCount:0];

使用上面的代码在类似器上显示空白屏幕,如果注释第二行显示0索引图像

帧率结果

 2015-04-08 10:21:53.206 WatchkitDemo WatchKit Extension[852:24553] {
     DelayTime = "0.1";
     UnclampedDelayTime = 0; }

帧阵列的结果

2015-04-08 10:21:58.807 WatchkitDemo WatchKit Extension[852:24553] (
    "<UIImage: 0x7fe358d2d320>",
    "<UIImage: 0x7fe358f05d60>",
    "<UIImage: 0x7fe358f08230>",
    "<UIImage: 0x7fe358d2fd50>"
)

有一种方法可以将从服务器接收的gif图像转换为数组。我认为Mayoff的UIImage类别可以帮助你。我可以给你一个你能做什么的想法:

1) 使用接收gif类别中定义的方法之一:

+[UIImage animatedImageWithAnimatedGIFData:(NSData *)data]
+[UIImage animatedImageWithAnimatedGIFURL:(NSURL *)url]

2) 进入实现文件UIImage+animatedGIF.m。在第89行,方法animatedImageWithAnimatedGIFImageSource已经实现。已经在那里调用了方法createImagesAndDelays来创建图像阵列。它将分离的图像存储在声明为CGImageRef images[count]的变量中。

您可以将此变量设置为实例变量,也可以使static方法返回一个分割的gif图像数组。

3) 将这些图像转换为Wkinterfaceimage接受的格式。

希望有帮助:)

最新更新