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

问题描述 投票:23回答:19

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

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

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

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

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

iphone xcode interface-builder uiimageview
19个回答
18
投票

尝试清理和重建项目。

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


0
投票

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


0
投票

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


0
投票

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

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


0
投票

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

您可能没有多个资产大小,只提供了1x或3x的资产,您可能正在Interface Builder中查看使用不同资产大小的设备类型的屏幕,因此UIImageView的图像不会在Xcode中呈现。例如,我正在查看iPhone 7的界面,它使用2x,但资产只有3x版本。当我添加一个2x版本时,它立即出现在Xcode的Interface Builder中。

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


0
投票

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


0
投票

如果您拥有所有1x,2x和3x图像集,清理并构建项目但仍然无法正确显示,请退出Xcode并强制退出,然后再次打开Xcode。只是一个简单的Xcode重启对我有用。


0
投票

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

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

UIImageView attributes inspector


0
投票

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


0
投票

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

对我来说,解决方案是手动输入名称。当我开始在文本框中键入图像名称时,它会自动完成它,就是这样。 |

PS:我之前也实施了所选的解决方案

enter image description here


0
投票

对我来说,我只需要点击我的资产并简要查看图像。然后我回到故事板并填充图像。


14
投票

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

瞧!在那!


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
投票

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


2
投票

只是为了记录(因为没有对我有用):

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

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


2
投票

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


1
投票

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

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


1
投票

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

跟着这些步骤:

步骤1:

第2步:

第3步:

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.