我刚收到一封邮件,说明我的应用程序已通过审核,现在可以在App Store中使用。但是,背景图像没有显示。
在我使用.png之前,但由于与.jpg相比它们拥有更多的内存,因此我将图像转换为.jpg。 (它节省了大约40 MB。)
因此,就像.png一样,我将.jpg拖动到Images.xcassets并在模拟器上进行了尝试。即使我通过模拟器将其加载到Iphone上,此方法也有效。
可以肯定的是,我一直在寻找代码。
每个屏幕都在调用此方法:
//Background image
UIImageView *backgroundView = [MyManager grabImage:FALSE];
backgroundView.frame = self.view.bounds;
[self.view insertSubview:backgroundView atIndex:0];
方法grabImage如下所示:
+(UIImageView *)grabImage:(BOOL)main{
UIImageView *Image;
if(main){
Image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Background1.png"]];
}else{
Image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Background2.png"]];
}
}
所以我发现了明显的错误。它仍然具有.png。但是,在我发送该应用程序并再次等待一个星期以上之前,我想确定如何调用它。
我应该使用Background1还是Background1.jpg?
我已经阅读了另一个StackOverflow主题,关于.jpg,您应该
始终使用扩展名。我看不到逻辑
虽然Background1.jpg。由于我的录音机名为Background1,但是文件名为;背景1
2x.jpg,Background1 ipad 2x.jpg等。
@Edit 13:23-14-01-2016
我试图在xcassets中重命名我的图片。从Background1到BackgroundMain以及调用
imageNamed:@"BackgroundMain"
时。它不再显示,并提供了默认的背景色。使用imageNamed:@"BackgroundMain.jpg"
时确实显示了。我的结论是,先前的命名以某种方式保留在内存/缓存中。 .jpg扩展名是必须的! (如果有人遇到同样的问题,我将在此保留问题。(因为这样可以节省重新发送软件包的大量时间)
最佳答案
通常应在没有扩展名的情况下引用Images.xcassets中的图像名称,这适用于PNG,但显然会引起其他文件类型的问题。我的测试表明,扩展程序在模拟器上无关紧要,但是您发现在应用商店中并非如此。在这种情况下,请保留.jpg扩展名,因为这似乎对您来说是正确的。
我认为您所指的主题是将图像直接添加到项目中时的情况,在这种情况下,如果扩展名为.png,则可以忽略该扩展名,但对于其他文件类型,必须包括该扩展名。
关于ios - 使用JPG为我的UIImage正确命名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34788891/