UIImageView 和 CoreAnimation 的性能

Posted

技术标签:

【中文标题】UIImageView 和 CoreAnimation 的性能【英文标题】:Performance of UIImageView and CoreAnimation 【发布时间】:2012-07-11 17:35:29 【问题描述】:

我正在开发非常简单的游戏。一切正常。 我只对性能和内存有疑问。 我正在从左到右移动鸟。这只鸟在 3 个位置挥动翅膀。

在速度、性能、内存方面有什么更好的解决方案:

    动画 uiview 改变 3 张完整的图片,鸟和翅膀在不同的位置 使用 CALayer 动画创建鸟类背景和动画单翼图像

感谢回复:) 亚历克斯

更新:更复杂的动画呢??

【问题讨论】:

【参考方案1】:

由于您只有 3 张图片(如您的问题中所述),您可以使用更简单的 UIView 动画方法。

但是,使用CoreAnimation 会给你带来更好的性能。

当使用 3 张不同的图片时,您可以使用 UIImageView 本身的动画属性,而不是更改图片和动画视图。

image01.pngimage02.pngimage03.png 是你的图片。

    UIImageView *animationImgView = [[UIImageView alloc] init];
    NSArray *animationImages = [NSArray arrayWithObjects:
                                        [UIImage imageNamed:@"image01.png"],
                                        [UIImage imageNamed:@"image02.png"],
                                        [UIImage imageNamed:@"image03.png"],
                                        nil];
    [animationImgView setAnimationImages:animationImages];   // Add images to imageView for animation.
    [animationImgView setAnimationRepeatCount:0];           // Repeat forever.
    [animationImgView startAnimating];                     // ImageView starts animating.

然后动画UIImageView的位置

【讨论】:

以上是关于UIImageView 和 CoreAnimation 的性能的主要内容,如果未能解决你的问题,请参考以下文章

IPHONE - 以不同时间淡入和淡出 UIImageView

uiimageview的长按手势和移动?

如何在另一个 UIImageView Swift 3 上方应用和移动 UIImageView 层

UIImageView:旋转和缩放。如何保存结果?

UIImageView+AFNetworking 管理缓存和分配

UIImageView 和 UIImage 大小相等