【发布时间】:2014-06-09 17:38:59
【问题描述】:
是否可以将CALayer 的内容设置为动画 GIF 并让它显示该动画?我知道我可以将内容设置为这样的图像:
CALayer* subLayer = [CALayer layer];
NSImage *image = [[NSImage alloc] initWithData:data];
subLayer.contents = image;
并且图像会显示,但如果是动画,则不会显示动画。唯一的解决方案是获取GIF的单个帧,获取帧率,然后根据帧率更改子层的content?还是我忽略了一个更简单的方法?
【问题讨论】:
-
您可以为图层的
contents设置动画,但您仍然需要获取所有单独的帧。 (通过“你可以动画”我的意思是:“你可以使用 CAKeyframeAnimation”) -
不清楚您为什么要尝试使用
CALayer执行此操作。如果您的唯一目标是显示动画 GIF,还有更好的方法。 -
@BradAllred 我正在将大量图像加载到
CALayers 中,然后一次单独显示一个,但有时图像是 GIF。我通常只会使用NSImageView,但与 Core Animation 相比,它的性能很糟糕。我想如果加载的图像是 GIF,我可以在 GIF 上使用NSImageView覆盖? -
@DavidRönnqvist 这看起来是不是有点矫枉过正?
标签: objective-c cocoa core-animation