我下面的代码用图像填充数组:

NSString *fileName;
    myArray = [[NSMutableArray alloc] init];
    for(int i = 1; i < 285; i++) {
        fileName = [NSString stringWithFormat:@"Animation HD1.2 png sequence/HD1.2_%d.png", i];
        [myArray addObject:[UIImage imageNamed:fileName]];
        NSLog(@"Loaded image: %d", i);
    }


在我的资源文件夹中,每个图像都有@ 2x版本。有没有一种方法(以编程方式)可以忽略视网膜设备上的@ 2x图像,并用非@ 2x图像填充数组?

编辑1:

我已编辑代码以使用NSData

  myArray = [[NSMutableArray alloc] init];
    for(int i = 1; i < 285; i++) {
        fileName = [NSString stringWithFormat:@"Animation HD1.2 png sequence/HD1.2_%d.png", i];
        NSData *fileData = [NSData dataWithContentsOfFile:fileName];
        UIImage *regularImage = [UIImage imageWithData:fileData];
        [myArray addObject:regularImage];
    }

falling.animationImages = MYArray;


这使我的应用程序崩溃,并显示错误:*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'。我使用NSData对象是否错误?

最佳答案

我相信这个问题相当于“如何绕过自动@ 2x图像加载?”

您需要走一条它无法遵循的道路。您可以使用NSData dataWithContentsOfFile:options:error:将每个文件的内容传递给UIImage imageWithData:,这样,imageWithData将不知道数据来自何处,更不用说2x版本了。

关于iphone - 如何忽略@ 2x图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12331657/

10-12 12:33
查看更多