启动屏幕情节提要板不显示图像


161

我正在尝试从Launch Screen.storyboard文件中将图像显示为启动屏幕,但是该图像从不显示。我的标签显示得很好,但是图像没有出现。

这是启动屏幕在Launch Screen.storyboard文件中的外观: 在此处输入图片说明

但是,当我在模拟器(以及物理设备)上运行应用程序时,将显示以下内容:

在此处输入图片说明

如您所见,标签“ Test”显示得很好,但是没有显示图像。我真的不确定为什么会这样,而且我尝试的任何方法似乎都没有效果。如果有人对如何解决此问题有任何想法,将不胜感激。


1
确保您的图片采用正确的png格式。如果不是jpg
Utkarsh Singh


3
多个完全不同的答案都有很多反对的事实,这是非常非常可悲的。
丹尼尔·斯普林格'18

1
如果图像太大并且加载时间占用过多,是否有可能将其从启动屏幕中丢弃?
鲁博

@Lubbo我认为那个理论有些东西。我有一个启动视图,其中有一个大图像和一个小图像,小视图可以很好地加载,而大视图则没有。小映像位于xcassets中,大映像位于资产文件的内外。
汤姆·贝茨

Answers:


325

重新启动Xcode之后,请清理构建以及有关此问题的许多其他建议。对我来说,真正解决问题的是设备的硬重启。(我为此浪费了一个多小时)

我想这只是表明,俗话说,您将其关闭然后重新打开对于最新的小工具仍然适用!

如何重启iPhone XS或iPhone XS Max

  1. 快速按下并释放音量调高按钮
  2. 快速按下并释放降低音量按钮
  3. 按住侧面按钮,直到出现Apple徽标

30
这个家伙是正确的。只需对设备进行硬重启,就可以为我修复它!
Lance Samaria's

4
在资产中覆盖映像后,映像没有更新。感谢您的提示,完全退出模拟器并重新启动它会更新预览。很奇怪,似乎没有其他办法可以解决问题。
基利安

3
谢谢。它也适用于模拟器。重新启动模拟器后,Launch Scree.storyboard中的图像最终显示出来。绝对是iOS的错误。
文斯·袁

4
这里同样的问题。即使我在模拟器的启动屏幕上更改了图像,旧图像仍然以某种方式仍缓存在手机中。尝试清理构建,更改文件名,更改映像,但无效。我必须关闭手机然后再打开。这样就解决了。
保罗

3
这是2020年,这仍然挽救了我的一天!谢谢!
Bezaleel

91

我也花了几个小时弄弄这个。但是我现在找到了解决方案。您需要通过拖放将图像添加到项目中,也需要添加到asset.xcassets中。


8
就是这样 图像必须同时存在于项目和资产中。这就像打地鼠游戏。哪个技巧可以解决?没人知道。
FranticRock

谁知道您也必须在项目中添加图像
Abdul Waheed

2
仅将图像添加到项目中解决了我的问题:)
Sneha

3
谢谢,这对我来说很合理。除此之外,我之前用大小(launch280.png,launch560.png,launch840.png)命名了图像,还向资产Assets.xcassets添加了资产,资产名称为launch。但是它仍然没有用。我必须将图像文件重命名为launch.png,launch @ 2x.png和launch@3x.png,将它们添加到项目中,并将它们添加为名为的资产launch,然后它才起作用。感谢苹果公司使最简单的事情变得不必要地复杂
¬_¬– mashers

2
Aaaand 3年后,我第二次来到这里……是2020年4月,XCode仍然存在此错误……不错……
FranticRock


28

请按照以下步骤操作,

  1. 从设备上删除应用程序
  2. 重启设备
  3. 再次建立

如果不起作用,请删除派生数据。Xcode首选项-> Locationtab->派生数据。然后按照上述步骤操作。


25

它发生在我身上,使我发疯,使我失去了几分钟,直到我弄清楚了。

因此,就像之前所说的那样:

  1. 将所需的图像导入Xcode项目(只需将其拖放)
  2. 更改其约束和对齐方式
  3. 更新框架以解决自动布局问题
  4. 在“属性”检查器选项卡菜单中(通常在xCode的右角菜单中),在“图像视图”>“图像”上,删除图像扩展名(.png或.jpg)-这就是窍门

在设计屏幕上,它不会出现,但是在您运行应用程序时,它将显示出来。

希望对您有所帮助!


1
为我工作!在尝试您的解决方案之前,我无法显示的唯一方法是重启手机!谢谢
FilipeSá16年

1
谢谢!不知道您是如何找到它的,但是它有效!
Stas Volskiy

确实是的!!诀窍是从.png图像文件中删除图像扩展名!.jpg文件不起作用,因此我必须先将它们转换为.png!非常感谢Jhnosore!
ActiveA

24

非常沮丧。最终有效的解决方案:

  1. 硬重启设备

  2. 删除应用

  3. 从Xcode安装应用


17

最后,重启手机对我有用!

我在这个问题上花了几个小时。曾经尝试过更改图像名称,删除整个图像资产,修改info.plist,重新启动Xcode甚至尝试设置图像的所有属性(您可以告诉我我多么绝望)。


这不能为问题提供答案。一旦您拥有足够的声誉,您就可以在任何帖子中发表评论;而是提供不需要问询者澄清的答案。- 评论
亚当·理查森

很抱歉,@ AdamRichardson也提供了答案和正确答案,这就是我的情况。我只需要重新启动手机/模拟器即可。
Kegham K.

我花了16个小时尝试解决这个问题,最后重新启动手机才成功。
克里希南'18

2
我打赌苹果公司的某个人可能会解决此问题,必须思考:“哦,他们只需要重新启动手机-但这不会影响Release版本或其他任何事情。我们可以将此任务留待以后使用。”
dinesharjani

最终,它最终重新启动了解决该问题的电话
Taylor Maxwell,

12

此问题与Assets.xcassets有关,要解决此问题,您必须将映像添加为资源,但不能添加到xcassets文件夹中,然后应该可以正常工作


2
这是到目前为止唯一可行的解​​决方案。重新启动xcode,清除派生数据,更改图像名称均无效。我不建议任何人重新启动设备作为解决方案
NightFury

此错误与创建xcassets一样古老。我已经将它装在我的文件夹中,“苹果无法解决”。
鸭子

8

就我而言,重置模拟器的内容和设置可以解决该问题。


7

我遇到了同样的问题。

  1. 将新的图像集添加到XcodeAssets。
  2. 将图像添加到图像集中。
  3. 将图像视图添加到启动屏幕并将图像集设置为图像
  4. 在Imageview的属性检查器中,取消选中“清除图形上下文”
  5. 清理构建文件夹,然后再次运行。

在此处输入图片说明


5

似乎xCode中的资源缓存存在一些问题。遇到相同的问题,重新启动xCode,之后一切正常。



3

在几个StackOverflow线程上尝试了所有方法之后,这对我有用:

  • 使用.png
  • 不要将其包括在资产目录中。将其直接添加到项目的层次结构中,就像添加任何源文件一样。
  • 在图像视图中,加载图像及其扩展名。示例:launch_app_image.png

(可能必须清除产品或派生数据以进行更新,但我不必这样做)


2020年,这仍然很重要,有时在工作时将图像更改为目录中的新PNG会使其停止。不确定是否是压缩级别的东西,但是普通图像文件可以工作。
米切尔·柯里

3

将图像添加到项目中并击落问题解决的设备后,我遇到了问题


3

正在更改初始屏幕的背景图像,但未显示新图像(反应本机项目)。

遵循别人的答案。

我做了以下所有操作,并且已修复:

  • 干净的构建。
  • 从模拟器中删除应用
  • 退出模拟器
  • 重新启动XCode
  • 再次运行应用

3

那么,到目前为止,有可用的视网膜设备,我忽略了中的@1x图像Assets.xcassets

就我而言,我在启动屏幕中有应用程序徽标,当我运行该应用程序时看不到该徽标。

浪费我想通了,我只能提供这么多的时间之后@2x@3x图像为标志的形象。

通过添加@1x该图像的版本可以解决此问题。


1
你救了我的一天!
kambala

2

您必须确保图片的文件名末尾具有.png或.jpg格式,否则将无法使用。另外,在添加图像之前,必须确保图像文件位于项目中的“ Assets.xcassets”文件夹中。只需简单的拖放操作即可完成。另外,确保在将图像添加到情节提要中时,请确保左上角的图像名称也与真实图像文件名匹配。我也会尝试研究约束。希望这可以帮助。祝您的应用程序好运。


2

在最终意识到自己的错误之前,我花了几个小时解决这个问题。当您将图像添加到UIImageView时,它将仅使用图像的名称。如果图像与情节提要不同,则它们将以xcode显示,但在运行该应用程序时不会显示。您必须添加适当的文件路径前缀,例如images / image.png。现在,它将在xcode中显示为蓝色问号,但可以在应用程序中使用。


2

只是将我的$ 0.02加到这个问题上;我通过使用PNG图像而不是JPG / JPEG图像解决了这一问题。

将图像转换为PNG并对其进行压缩以减小尺寸后,一切工作正常。


2

经过很多时间,我得到了解决方案:-

Step 1:- Quit Xcode
Step 2:- Delete the app from device/simulator
Step 3:- Restart your device (if you are using simulator then you have to quit simulator)
Step 4:- Clear all derived data 
Step 5:- Clear Bin
Step 6:- Open Xcode and relaunch the app, it will work 

这对我
有用,

@DilipTiwari,欢迎您:)
Vipul Kumar

1

我遇到了同样的问题。为此尝试了不同的解决方案,但没有任何帮助。然后,我意识到只有当我将应用程序直接安装到设备中并且该应用程序仍连接到xcode时,该图像才可见。如果我断开连接,然后打开应用程序,则该图像将按预期显示。这可能是xcode错误。


1

我尝试清理项目,删除png,删除约束对我不起作用。

我只是又制作了一个图像副本,并重命名了副本,然后删除了旧图像并添加了新图像(相同,但名称已更改),我只是给了该图像,它就对我有用。

我也没有使用Assets.xcassets,而是使用文件夹中的图像。


1

我为此尝试了很多事情(仅此线程似乎就有一百万个想法,其中一半是冲突的)。对我来说,问题是当我执行诸如重启设备和Xcode之类的操作时,它将导致该图像在应用程序的几次会话中显示,然后它将停止(我不知道为什么,但是哇,这很烦人) 。

经过无数小时后,我发现AG在该线程中的答案是正确的。我做错了的一件事是我在xcassets中创建了一个新的图像集,但是那时我仍在情节提要内部的UIImageView中使用图像的名称,而不是使用图像集的名称。

为了明确起见,您要做的是创建一个新的图像集并将其命名为“ Launch-Defaults”,然后将图像添加到其中。然后,在情节提要内部的UIImageView中,使用图像“ Launch-Default”(不包含扩展名,因为没有扩展名,因为这是图像集)。

当您完成所有这些操作后,图像实际上应该正确显示在情节提要中。有人说,如果您不使用扩展名(.jpg或.png),图像将显示为空白,但我认为这是因为他们没有使用图像集的名称。其他人则说,您需要使用.png或.jpg这样的扩展名,但关键是要在xcassets内部创建图像集,然后在情节提要中使用该图像集。正确完成后,就不会出现像没有显示图像之类的时髦现象,或者“启动屏幕”仅在某些时间有效(需要重新启动)。


1

在我的特殊情况下,初始屏幕可用于模拟器和其他设备,但停止用于一个特定设备。这使我相信这是xcode(v10和iPhone 7 v12.1)保留的一些缓存数据。

我在以下位置删除了衍生数据: ~/Library/Developer/Xcode/DerivedData/仅清空文件夹内容,而不删除文件夹。然后,我重新启动了Mac和iPhone,清理并重建了该项目,现在它正在显示。

我不确定是否所有这些都是必要的,但是不想浪费更多的时间来缩小范围,因此上述大锤方法对我有用。但是,当然,它始终取决于您的特定情况-我的是特定于设备的;对于其他人,则可能是实际图像或启动屏幕布局等。


1

我的问题。

原因:拖动到Xcode后,我已重命名了图像。解决方案:拖入Xcode后不要重命名图像。它为理解Xcode带来了问题。重命名图像,然后再拖动/添加到Xcode中。

希望它可以帮助您!


0

我只是想通了。我的启动图像没有显示,在设备(iPhone 6、7+)或testFlight上启动时出现白屏。修复:将“ Landing_screen.png”重命名为“ Landing_screen”,删除了.png部分。Xcode中的图像图标已更改为白色图标,并且在启动屏幕情节提要中,图像现在显示为问号。现在将显示启动图像,而不是白屏。我的设置:我正在将Swift 3.1与Xcode 8.3.1结合使用。在LaunchScreen.storyboard中,我添加了一个简单的图像视图并拉伸了图像以适合视图控制器。我将自动布局约束的顶部/底部/前导/尾随空间设置为0的超级视图-参见下图:

在此处输入图片说明


0

就我而言,事实证明我仍有一些视图链接到了现在只是基本视图控制器的视图控制器。但是,如果我按住Control键单击该视图,则可以看到带有警告的出口,但是警告没有出现在Xcode中,这就是为什么我找不到它们的原因。


0

这恰好是XCode / iOS中的缓存问题,但是有一个简单的解决方法:只需在Assets.xcassets中重命名文件,就可以重新生成缓存。


0

我的第一个错误是,我创建了一个普通的.storyboard,将其重命名并将其定义为项目设置中的启动屏幕。在这种情况下,我遇到了图像问题。在这种情况下,似乎缺少某些设置,因此我只是通过file-> new创建了一个新文件,并直接选择了“启动屏幕”,然后它开始工作。

我还牢记,由于某种原因,启动屏幕中不支持布局约束。也许一开始就是这样,不确定,但是现在约束应该起作用了。

也许这可以帮助任何人。


0

使用启动故事板显示初始屏幕时,我也遇到了同样的问题,经过研究,我发现我在启动故事板中设置的图像大小不同,并且我将图像视图设置为大于图像的实际大小。

因此,我发现的解决方案是将图像视图内容大小设置为高宽比,或者将图像视图大小设置为图像大小。

就像如果您的图像@ 1x大小为200X200,则图像视图的大小应为200X200,那么您将解决此问题。

因为如果您将图像视图的尺寸设置为大于图像,则图像会出现糊状,这是不允许的。

如果您仍有任何疑问,请在此处评论并询问

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.