Ios 图像不工作时的iPad后缀

Ios 图像不工作时的iPad后缀,ios,iphone,objective-c,ipad,Ios,Iphone,Objective C,Ipad,我正在用xcode 5开发一个通用应用程序,我正在尝试为这两个应用程序设置背景图像。我使用的代码位于viewDidLoad方法中: UIImage *backgroundImage = [UIImage imageNamed:@"city5.jpg"]; UIImageView *backgroundImageView=[[UIImageView alloc]initWithFrame:self.view.frame]; backgroundImageView.image

我正在用xcode 5开发一个通用应用程序,我正在尝试为这两个应用程序设置背景图像。我使用的代码位于
viewDidLoad
方法中:

    UIImage *backgroundImage = [UIImage imageNamed:@"city5.jpg"];
    UIImageView *backgroundImageView=[[UIImageView alloc]initWithFrame:self.view.frame];
    backgroundImageView.image=backgroundImage;
    [self.view insertSubview:backgroundImageView atIndex:0];
这两张图片的名称分别是
city5~iphone.jpg
city5~ipad.jpg


这些图像在iphone上的效果与预期一样。然而,ipad图像从未加载,视图只是保持空白。我正在ipad2上部署。

您的问题在
UIImage*backgroundImage=[UIImage imagename:@“city5.jpg]”
特别是
imageNamed:@“city5.jpg”
当您使用
imageNamed:
时,它将查找
.png
图像而不是
.jpg
图像,因此本质上您是在查找文件
city5.jpg.png
,这显然是您想要的,所以请将该行更改为
UIImage*backgroundImage=[UIImage imageNamed:@“city5”];
并将图像文件更改为
.png

如果您想将其保留为
.jpg
,请尝试以下操作

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"city5" ofType:@"jpg"];
UIImage *backgroundImage = [UIImage imageWithContentsOfFile:filePath];
如果这些都不起作用,我会怀疑你的问题是三件事之一:

  • 您试图加载的映像不存在于捆绑包中。因此,请确保图像实际位于项目中,并通过单击文件并选择其所属的目标来检查目标

  • 确保图像名称没有拼写错误

  • 或者您使用的是视网膜显示器,但没有@2x图像。试着把你的模拟器换成视网膜,看看它是否出现


作为最后的手段,试着做
UIImage*backgroundImage=[UIImage-imagename:@“city5~ipad”]


您还可以尝试执行以下操作:
self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@“city5”]

我尝试了你的两个建议,但都没有成功,我甚至还导入了一个新的.png图像。iphone上的一切仍如预期一样正常。谢谢你回复我!UIImage*backgroundImage=[UIImage ImageName:@“城市5~ipad”];这在ipad视图中仍然不起作用。图像在项目中,我在iphone上运行时加载了它…@MartinJeffers如果您只使用
addSubview:
而不是
insertSubview:
?@MartinJeffers或者尝试
self.view.backgroundColor=[UIColor WithPatternImage:[UIImage imageNamed:@“city5]”会发生什么这个答案中的大部分都是不正确的。
imageNamed:
方法不仅查找png图像。如果指定
city5.jpg
,则它将查找名为
city5.jpg
的文件。它唯一假定为png的时间是在不指定扩展名的情况下。