在UIImageView中加载animation的图像 – iOS
我有大约300个图像加载animation图像被命名为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
但无法弄清楚。
您可以尝试下面的代码,以更好的方式将图像加载到数组中
- (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]; }
有一个更简单的方法来做到这一点。 你可以简单地使用:
[UIImage animatedImageNamed:@"loading" duration:1.0f]
其中1.0f
是animation所有图像的持续时间。 为了这个工作,你的图像必须像这样命名:
loading1.png loading2.png . . loading99.png . . loading300.png
也就是说,没有填充0。
animateImageNamed函数可以从iOS 5.0开始使用。
根据图像的大小,一个300的图像animation序列可能是相当的记忆猪。 使用电影可能是一个更好的解决scheme。
你的代码在设备上运行时会崩溃,只是不可能在iOS上将很多图片解压缩到内存中。 你会得到内存警告,然后你的应用程序将被操作系统杀死。 看到我的答案如何做,animation,使用图像,高效率在IOS中的解决scheme,不会在设备上崩溃。
- iOS7 UITextView contentsize.height替代
- iOSanimation虚线矩形边框
- 如何在Xcode 6 iOS模拟器上安装应用程序
- iOS 7应用程序崩溃EXC_CRASH(SIGABRT)objc_exception_throw在iOS 6上正常工作
- 如何用相机谷歌地图xcode移动标记(针)
- 在CBCentralManager委托方法didDiscoverPeripheral:从来没有调用
- Xcode 6自适应故事板不同的每个设备的Segues
- 未知的崩溃原因(附带CrashReport)SIGTRAP。 AFNetworking?
- Parse和GMaps iOS SDK在Swift中不兼容?