iPhone模拟器显示应用程序的图像,但iPhone没有

时间:2009-07-07 06:24:26

标签: iphone objective-c

我已经使用objective-c在iphone上创建了一个应用程序。在这个应用程序中,我只是显示存储在一个文件夹中的不同玩家图像,这将在模拟器上完美运行。但是当我在iphone上部署它时,它并没有显示播放器的图像。

代码为:

UIImageView *imageplayer = [[UIImageView alloc]initWithFrame: CGRectMake(imgx, imgy+45,135,150)];
imageplayer.image = [UIImage imageNamed:playerpng];

if(imageplayer.image == nil)
    [imageplayer setImage:[UIImage imageNamed:playerjpg]];

if(imageplayer.image == nil)
    [imageplayer setImage:[UIImage imageNamed:@"noimage.png"]];

[self.view addSubView:imageplayer];

Plz解决此查询。 提前致谢

9 个答案:

答案 0 :(得分:6)

有时xCode无法正确更新捆绑包,请尝试再次清理和构建。

答案 1 :(得分:2)

我目前也遇到了这个问题。经过一些调试和查看构建文件后,我能够纠正它。

当我执行ls -l时,我注意到我的一些png文件在权限旁边有一个@符号。当我用ls -l @跟踪它时,它显示带有'@'的文件的属性设置为'com.apple.quarantine'。此属性被赋予从网络下载的文件(通常来自zip,jar或其他可执行文件)。您可以通过执行以下操作来删除此属性:

xattr -d com.apple.quarantine *.png

然后,在XCode中选择图像,并检查目标下的复选框是否已选中。在我的情况下,它不是,所以图像没有包含在捆绑包中。

答案 2 :(得分:2)

我有同样的问题,通过在代码 - image.jpg中使用全部小写的文件名来解决,但实际文件名的情况似乎没有任何区别,例如: image.jpg的

答案 3 :(得分:1)

检查图像文件的名称。一定是“noimage.png” 不是Noimage.png或noimage.PNG

答案 4 :(得分:1)

只是为了澄清,“noimage.png”显示,或者是加载播放器图像但是无法显示它的程序?或者什么都没有加载。

这些应该很容易在调试模式下确定。

要检查的其他一些事项......

1)仅用于测试,从PNG版本的播放器文件开始。这是iPhone上的主要格式,可能会消除文件格式问题或模拟器不敏感的其他异常情况。

2)关于在图像编辑器中进行固定,具体请确保将图像设置为72像素/英寸的DPI。 iPhone,特别是Interface Builder对此非常敏感,如果不正确,有时无法显示或显示非常模糊的图像版本。

3)确保图像未被多次添加(从不同的目录和/或不同的组文件夹)。我们遇到了这样一种情况:我们无意中在项目层次结构中的两个不同层导入了相同的图像,这可能会导致iPhone内的意外行为(随机选择或无法选择)。

4)确保获取信息 - >目标已检查您的特定目标。模拟器仍然可以看到图像,但它不会部署到iPhone。

5)确保您可以在XCode中查看图像并且看起来正确。

巴尼

答案 5 :(得分:0)

有时这种情况发生在我身上。我曾经花了半个晚上试图找出问题所在。为此,这是有效的:使用图像编辑器打开图像并再次保存。就这样。我正在使用free Acorn image editor来执行此操作。没有用Photoshop试过。 (毕竟,似乎Photoshop可能首先负责引入错误,尽管这很不确定。)

我不知道导致问题的原因。当我使用已发送给我的png文件时,我通常会得到它。可能是一个简单的文件权限问题,或图像格式的一些更微妙的问题。我很想听听知情人士的意见。

在任何情况下,如果所有其他方法都失败了,请尝试以下操作:使用Acorn打开图像,保存原始文件。适合我。

答案 6 :(得分:0)

确保将图像文件添加到XCode项目中。

答案 7 :(得分:0)

经过一番调查,迈克尔的评论似乎已经为我解决了。我将所有小写作为文件名但是遵循变量约定并且具有文件名的第二部分的大写的png文件。我的文件是 putback.png ,但在我的代码中被引用为putBack.png

 UIImage *putBackImage = [UIImage imageNamed:@"putBack.png"]; //wrong
 UIImage *putBackImage = [UIImage imageNamed:@"putback.png"]; //correct

答案 8 :(得分:0)

在将图像文件添加到项目时选择正确的目标。以下是进一步明确的步骤

  1. 选择将文件添加到“YourProjectName”
  2. 在打开的窗口中,底部有一个“添加到目标”选项,显示所有可用目标
  3. 检查要添加图像的目标或多个目标
  4. 按“添加”按钮即可开始