加载图像中的UIImageView动画 - iOS设备(Loading images for an

2019-09-04 04:22发布

我必须加载动画图像被命名为约300图像loading001.png, loading002.png, loading003.png, loading004.png………loading300.png

我按以下方式做这件事。

.h文件中

    #import <UIKit/UIKit.h>
    @interface CenterViewController : UIViewController  {
        UIImageView *imgView;
    }

    @end

.m文件

@implementation CenterViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    imgView = [[UIImageView alloc] init];
    imgView.animationImages = [[NSArray alloc] initWithObjects:
                               [UIImage imageNamed:@"loading001.png"],
                               [UIImage imageNamed:@"loading002.png"],
                               [UIImage imageNamed:@"loading003.png"],
                               [UIImage imageNamed:@"loading004.png"],
                               nil];
}

- (IBAction)startAnimation:(id)sender{
    [imgView startAnimating];
}

@end

是否有图像加载到阵列中的有效方式。 我曾与尝试过for loop ,但无法弄清楚。

Answer 1:

你可以试试下面的代码加载图像到一个数组以更好的方式

- (void)viewDidLoad {
    [super viewDidLoad];

    NSMutableArray *imgListArray = [NSMutableArray array];
    for (int i=1; i <= 300; i++) {
        NSString *strImgeName = [NSString stringWithFormat:@"loading%03d.png", i];
        UIImage *image = [UIImage imageNamed:strImgeName];
            if (!image) {
                NSLog(@"Could not load image named: %@", strImgeName);
            }
            else {
                [imgListArray addObject:image];
            }
        }
    imgView = [[UIImageView alloc] init];
    [imgView setAnimationImages:imgListArray];
}


Answer 2:

还有一个更简单的方法来做到这一点。 你可以简单地使用:

[UIImage animatedImageNamed:@"loading" duration:1.0f]

1.0f是动画的所有图像的持续时间。 对于这个工作,虽然,您的图像必须被命名为这样的:

loading1.png
loading2.png
.
.
loading99.png
.
.
loading300.png

也就是说,不以0填充。

该功能animatedImageNamed可从安装iOS 5.0起。



Answer 3:

根据您的图像的大小,300图像动画序列可能相当内存猪。 使用AA电影可能是一个更好的解决方案。



Answer 4:

您的代码会崩溃时,在设备上运行,它仅仅是不可能的,很多图像解压缩到iOS上的内存。 你会得到内存警告,然后您的应用程序将被操作系统杀死。 见我的回答如何对-DO的动画,使用图像高效地功能于IOS的,将无法在设备上崩溃的解决方案。



文章来源: Loading images for animation in UIImageView - iOS