4

这是我的疑问!

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

目前我正在处理分配给 wkinterfaceimage 的 GIf 图像。我通过转换 gif 图像在运行时将一组图像存储在 Mutablearray 中。如何将该数组分配给 wkinterfaceimage 以显示运行 gif 图像。我在 swift 中发现了几个教程试图在 OBJ C 中实现,请让我知道你在Objective 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; }

Frames 数组的结果

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

1 回答 1

3

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

1)使用category 中定义的任一方法接收gif

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

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

您可以将此变量设置为实例变量,或者使静态方法返回一个拆分的 gif 图像数组。

3) 将这些图像转换为Wkinterfaceimage.

希望能帮助到你 :)

于 2015-04-08T06:24:05.900 回答