图像未显示在Interface Builder / iPhone中的UIImageView中

时间:2010-04-16 03:15:58

标签: iphone xcode interface-builder uiimageview

我有一个UIView,其中UIImageView被拖到视图上。突然间,对于我的所有xib,图像不再显示。有一个蓝色的X.但是,当它建立时,图像就在那里。

有一次,我删除并重新生成了所有图像,并将一些图像移动到Xcode中的子文件夹中。通常,当您选择UIImageView的图像时,IB允许您从项目中的任何图像中进行选择。但是,我无法在下拉列表中看到我放在文件夹中的任何图像。

我在Inspector的下拉列表中看到的只是我想要的一张图片,但那也是没有出现的图片。就像我说的,如果我在设备或模拟器上构建它,它一切正常。

有些缓存或某些东西搞砸了。一切都没有错误。我清理了缓存并重建了。一切正常。没有错误或警告。但是......我看不到任何其他图像,IB仍然认为它丢失了在下拉列表中明确选择的图像。

那么我如何让Xcode和IB回到正轨并看看它应该在XIB中正确看到哪些资产?

19 个答案:

答案 0 :(得分:18)

尝试清理并重建项目。

如果它仍然不起作用,则从Xcode中删除所有图像(仅选择删除参考),然后通过将这些图像拖动到Xcode中再次重新添加它们。然后重新构建它,它应该工作。

答案 1 :(得分:14)

我的收件人:CLEAN + Build + QUIT XCODE然后重新开始!

VOILÀ!!它在那里!

答案 2 :(得分:7)

确保在将图像拖入项目时将图像添加到目标。因为Xcode的文件夹/组/项目系统有问题,请单击图像并检查它是否实际添加到检查器中的目标版本中,如图所示(图形问题需要图形答案!):

将图像添加到项目中......

enter image description here

添加到目标......(或者我们认为)

enter image description here

背景图片在Interface Builder中很好地展示了......

enter image description here

但是当我们跑步时,我们只有我们设定的背景颜色......没有图像......

enter image description here

在Interface Builder中单击UIImageView并使用检查器,我们向下滚动并发现实际上它从未添加到目标中,就像Xcode在步骤2中清楚地显示的那样...

enter image description here

所以我们将它添加到目标......

enter image description here

我们建立并运行瞧!我们的图像在UIImageView中显示了它想要显示的位置。

enter image description here

这让我疯狂了一整天,直到我尝试添加代码才能让它发生,看看它是不是很好看。我通过创建下面的viewDidLoad实现添加它没有问题。

请注意,如果Xcode / Interface Builder按照预期的方式运行,则不需要此操作。用户IB或使用此代码,而不是两者:

- (void)viewDidLoad {
UIColor *   theColor;
UIImage *   theImage;

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
theImage = [UIImage imageNamed:@"/<redacted>/background sea green gradent.png"];
theColor = [UIColor colorWithPatternImage: theImage ];
[self.view setBackgroundColor: theColor ]; }

注意:如果您的按钮未显示自定义图片,则可能会出现同样问题...

答案 3 :(得分:3)

刚遇到这个问题。在Adobe Illustrator中导出相同的图像。一个是透明的,另一个是白色的。透明的一个出现了一个大的蓝色问号。运行它,然而工作正常。与IB和透明PNG有关的事情

答案 4 :(得分:2)

仅供记录(因为没有对我有用):

我们的项目中只有视网膜图形。更新到XCode 5后,所有图片中都有一个白色问号(仅限于Interface Builder,而不是Simulator)。我们将图像源切换到non-retina,这解决了这个问题!

enter image description here

使用btn-category-6.jpg解决了问题!

答案 5 :(得分:2)

对我来说,这是因为图片在属性检查器中有一个“.png”。删除它修复了问题

答案 6 :(得分:1)

仅仅是一个FYI:我遇到了类似的问题。在某些时候图像被破坏了,它们都是透明的PNG!

我替换了文件,现在又重新显示了。当我通过运行Windows XP的Oracle虚拟盒中的Windows资源管理器复制文件时,可能发生了映像损坏。

答案 7 :(得分:1)

在我的情况下,当我在Xcode 6中创建新项目时,我无法在模拟器和设备中显示图像。我已导入图像资源中的所有图像,在其中创建一个文件夹。现在我已导入所有图像,现在一切正常。现在所有图像都在显示。

请按照以下步骤操作:

第1步:

Step 1:

第2步:

Step 2

第3步:

Step 3

然后导入您需要的图像。参考链接: StackOverflow link

答案 8 :(得分:0)

对于我来说,我只需要单击我的资产并在其中短暂查看图像。然后我返回情节提要,并填充图像。

答案 9 :(得分:0)

对我来说,问题是,我可以在Show the media library上看到新添加的图像文件,但是在我的按钮Image的下拉列表中看不到

对我来说,解决方法是手动输入名称。当我开始在文本框中输入图像名称时,它将自动完成,仅此而已。 |

PS:在这样做之前,我还实施了选定的解决方案

enter image description here

答案 10 :(得分:0)

如果这些答案均无效,则可能的原因之一是: 如果您正在使用UIButton并在其中显示图像,请确保该按钮没有标题。因为按钮标题被截断,所以它将显示一个椭圆(...)。

答案 11 :(得分:0)

我曾经遇到过这个问题几次 - 有时候(我不太清楚为什么......),Xcode似乎忘记了UIImageView和你文件夹中的图像之间的联系。

然后可能就像转到该图像视图的属性检查器一样简单,如果图像框显示“未知图像”,则重新选择正确的图像!

UIImageView attributes inspector

答案 12 :(得分:0)

确保您的资源与您在Xcode的Interface Builder文件中查看的屏幕尺寸相匹配的图像比例。如果您在Xcode中使用资产目录,那么图像资产有@ 1x,@ 2x和@ 3x点,或者,如果您不使用它,那么您应该根据文件名区分不同的资产(例如“ image.png,image @ 2x.png,image @ 3x.png)。

您可能没有多个资产大小,只提供了1x或3x的资产,您可能正在Interface Builder中查看使用不同资产大小的设备类型的屏幕,因此SELECT m.id, m.title, s.id, s.title, c.id, c.title FROM Main m LEFT JOIN Sub s ON m.id = s.parent_main_id LEFT JOIN Cat c ON s.id = c.parent_sub_id UNION SELECT m.id, m.title, s.id, s.title, p.id, p.title FROM Main m LEFT JOIN Sub s ON m.id = s.parent_main_id LEFT JOIN Pro p ON s.id = p.parent_sub_id ' s图像不会在Xcode中呈现。例如,我正在查看iPhone 7的界面,它使用2x,但资产只有3x版本。当我添加一个2x版本时,它立即显示在Xcode的Interface Builder中。

请注意,即使它没有在Xcode中呈现,它仍然可以在运行时正确呈现。不过,最好以符合每种设备型号的分辨率提供资产。

答案 13 :(得分:0)

如果您设置了所有1x,2x和3x图像,清理并构建了项目但仍未正确显示,请退出Xcode并强制退出,然后再次打开Xcode。只需一个简单的Xcode重启就可以了。

答案 14 :(得分:0)

确保您引用实际存在的图片资源 。我像往常一样将我的文件添加到Xcode资产目录(.xcassets),但忘记重命名为默认名称&#34; Image&#34;我在故事板中使用的名称。

答案 15 :(得分:0)

属性检查器中我的图像名称末尾缺少.png

清理后,重新导入并检查正确映射的资产,没有任何效果,虽然我发现我的图像(这是一个png)出现在我在属性面板中的图像名称末尾输入.png后。

enter image description here

答案 16 :(得分:0)

当我将图像移动到xcassets时发生了这种情况。我通过删除检查器上的png和jpg扩展来解决它。

答案 17 :(得分:0)

我有好几次这个问题。并将项目目录复制到桌面,重命名原始文件夹,从新位置打开项目并再次将其移动到原始目录。所有那些“加载所有头文件”解决方案有时都有效,有时候不会

答案 18 :(得分:0)

我有相同的症状,但我只是将项目文件夹移动到桌面,从那里重新运行IB中的项目并且它有效!然后再次使用不同的名称将其重新放回到同一个父文件夹中......很奇怪。