界面生成器无法显示我的某些资源图片

4

我在Xcode的当前项目中添加了近20个PNG格式的图像(放在正确的组,即资源文件夹下)。不幸的是,库窗口的媒体选项卡并没有显示其中的一些。如果我从代码中创建一个UIImageView并设置其中的一个不可见的图像,就什么也不会显示出来。我也尝试过通过添加UIImageView并设置其源图像来从IB解决问题。

这个问题是与图像格式有关还是我忽略了微小的细节?

日志信息:

Could not load the "07_clock_icon.png" image referenced from a nib in the bundle

我有一个类似的问题——图片根本不会在IB中显示。然而,如果我手动设置图像,它就可以正常工作(因此这不是PNG格式的问题)。 - David Dunham
5个回答

7
这个问题的解决方案有点傻,但绝对有效:
关闭XCode和Interface Builder。现在,不要打开XCode再打开项目,而是在Finder中导航到该项目,然后双击该项目。当您打开xib文件时,蓝色的文件未找到图像将闪烁,然后被正确的图像替换,下拉菜单将在检查器中显示所有图像。

1

嗨!我找到解决方法了。这是一个刷新错误。只需将未加载的那些图像复制并替换到您的项目文件夹中,然后按住Shift Command K(清理项目)即可。清理完成后,它应该完美地工作!享受吧!


“将这些图像复制并替换到您的项目文件夹中”?您能否澄清您的回答,谢谢? - Peter Hosey
抱歉,请进入您的文件夹并选择未加载的图像,然后将它们暂时复制到桌面上。回到 Xcode 并选择未加载的图像并删除它们,然后点击“同时移动到废纸篓”。然后将您放置在桌面上的图像拖到 xcode 窗口,并确保选中“将项目复制到目标组文件夹中”。然后只需在 Interface Builder 上重新添加新图像,执行清理命令并构建您的项目。它应该可以工作。 - Victor Alexander

0

如果你将图像从Finder拖到XCode的资源文件夹中,这些图像也应该在IB中显示出来。至少在我的设置中是这样的。

也许这些图像是8位PNG图像。我认为Cocoa要求它们为24位,因为需要alpha透明度。PNG 8位不支持alpha通道,更像是GIF图像。

但是从你发布的错误信息来看,似乎IB根本找不到资源。如果它不从XCode的库中加载资源,这是可以理解的。


所有的图像都是24位。 - Burcu Dogan

0

假设您选择了让XCode将文件复制到您的项目中,并且在复制时,无论是XCode还是Finder都没有出现任何问题...我想知道是否可能存在一些文件损坏?也许可以尝试重新创建它们或从另一个图形应用程序(甚至是Preview.app)打开并重新保存它们。

顺便说一下,8位PNG对我来说运行良好。


0
我也遇到了相同的问题。问题在于图片。图片已经被某种方式损坏了。尝试在 Photoshop 中打开该图像,您会发现它不能用 Photoshop 打开。我通过将图像格式更改为 PNG-24 来解决了这个问题,一切都对我正常工作。希望这能解决你的问题。
问候,
Rupesh R Menon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接