ChatGPT解决这个技术问题 Extra ChatGPT

启动屏幕故事板不显示图像

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

https://i.stack.imgur.com/Vjy5B.png

但是,当我在模拟器(以及物理设备)上运行应用程序时,会出现以下情况:

https://i.stack.imgur.com/kjUeh.png

如您所见,“测试”标签显示正常,但图像不显示。我真的不确定为什么会发生这种情况,而且我尝试的任何方法似乎都不起作用。如果有人对如何解决此问题有任何想法,将不胜感激。

确保您的图像采用正确的 png 格式。如果是,则不是jpg。
多个完全不同的答案有很多赞成票的事实非常非常可悲。
如果图像太大并且加载时间过长,是否有可能将其从启动屏幕中丢弃?
为我解决的只是退出模拟器并再次运行项目。
哼!这个问题依然存在。硬重启设备解决了它。

0
0xced

重新启动 Xcode 后,清理构建以及关于此问题的其他一些关于 SO 的建议。实际上为我解决的是设备的硬重启。 (我为此浪费了一个多小时)

我想这只是表明,对于最新的小工具来说,你是否将其关闭再打开这句老话仍然适用!

如何重启 iPhone XS 或 iPhone XS Max

快速按下并释放音量调高按钮 快速按下并释放音量调低按钮 按住侧面按钮,直到出现 Apple 标志


这个人是对的。只需对设备进行硬重启即可为我修复它!
在资产中覆盖图像后,图像未更新的问题。感谢您的提示,完全退出模拟器并重新启动它更新了预览。很奇怪,似乎没有其他方法可以解决问题。
谢谢。它也适用于模拟器。重启模拟器后,Launch Screen.storyboard 中的图片终于出现了。这绝对是iOS的一个错误。
这里同样的问题。即使我在模拟器的启动屏幕上更改了图像,旧图像仍然以某种方式缓存在我的手机上。尝试干净构建,更改文件名,更改图像,没有工作。我不得不关掉我的手机然后再打开。那解决了它。
这是 2020 年,这仍然挽救了我的一天!谢谢!
A
App Dev Guy

我也为此搞砸了好几个小时。但我现在找到了解决方案。您需要通过拖放将图像添加到您的项目以及 assets.xcassets 中。


就是这样。图像必须在项目和资产中。这就像打地鼠游戏。哪个技巧可以解决它?没人知道。
将图像添加到项目中解决了我的问题:)
天啊……谢谢。我认为我们不能再谈论关于 xcode 的“错误”了。这个软件真是一团糟。
谢谢,这已经为我整理好了。为了补充这一点,我之前用大小(launch280.png、launch560.png、launch840.png)命名了图像,并且还在 Assets.xcassets 中添加了一个资产名称为 launch 的资产。但它仍然没有工作。我不得不将图像文件重命名为launch.png、launch@2x.png 和launch@3x.png,将它们添加到项目中,将它们添加为名为launch 的资产,然后它就可以工作了。感谢 Apple 让最简单的事情变得不必要地复杂 ¬_¬
Aaaand 3 年后我第二次来这里...现在是 2020 年 4 月,XCode 仍然有这个错误...很好...
n
neowinston

有同样的问题,将图像添加到“构建阶段 - >复制捆绑资源”为我修复了它。


这就是我需要的。图像必须在主包中,而不是在资产文件中。
V
Vineesh TP

按照以下步骤,

从设备中删除应用程序 重新启动设备 再次构建

如果不起作用,请删除派生数据。 Xcode 首选项-> 位置选项卡-> 派生数据。然后按照上面的步骤进行。


C
Crashalot

非常令人沮丧。最终奏效的解决方案:

硬重启设备 删除应用 从 Xcode 安装应用


t
totocaster

它发生在我身上,让我发疯,除了让我失去几分钟,直到我弄明白。

所以,就像之前说的:

将所需的图像导入您的 Xcode 项目(只需拖放它) 更改其约束和对齐 更新帧解决自动布局问题 在属性检查器选项卡菜单(通常在右角菜单 xCode 中),在图像视图 > 图像上,删除图像扩展(.png 或 .jpg)——这就是诀窍

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

我希望它可以帮助!


为我工作!在尝试您的解决方案之前,我让它显示的唯一方法是重新启动我的手机!谢谢
确实是的!!诀窍是从 .png 图像文件中删除图像扩展名! .jpg 文件不起作用,所以我必须先将它们转换为 .png!非常感谢Jhnosore!
M
Michael Peterson

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

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


这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review
对不起@AdamRichardson,它也提供了一个答案和一个正确的答案,这就是我的情况。我只需要重新启动手机/模拟器。
我花了 16 个小时试图解决这个问题,最后重新启动手机就成功了。
我敢打赌,苹果公司的某个可以解决这个问题的人一定在想:“哦,他们只需要重启手机——这不会影响发布版本或其他任何东西。我们可以把这个任务留到以后。”
最终它最终被重启了解决问题的手机
V
Vipul Kumar

投入大量时间后,我得到了解决方案:-

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 

@Mr.Ming 很高兴它有所帮助。
A
Alvin George

我遇到了同样的问题。

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

https://i.stack.imgur.com/VSKMK.png


谢谢你,超级骗子谢谢你。我总是回来看你的评论。这让我发疯。你的修复对我有用。
取消选中“清除图形上下文”对我有帮助!
R
Reinier Melian

此问题与 Assets.xcassets 有关要修复它,您必须将图像添加为资源但不在 xcassets 文件夹中,然后应该可以正常工作


这是迄今为止唯一有效的解决方案。重新启动 xcode,清除派生数据,更改图像名称不起作用。我不建议任何人重新启动设备作为解决方案
这个错误与 xcassets 的创建一样古老。我已经在我的文件夹“苹果永远无法解决的东西”中填写了它。
T
Tarek

就我而言,重置模拟器的内容和设置解决了这个问题。


K
Kqtr

在几个 StackOverflow 线程上尝试了一切之后,这对我有用:

使用 .png

不要将其包含在您的资产目录中。直接将其添加到项目的层次结构中,就像添加任何源文件一样。

在图像视图中,加载包含其扩展名的图像。示例:launch_app_image.png

(可能需要清理产品或派生数据才能更新,但我不必这样做)


2020 年,这仍然是相关的,有时将图像更改为目录中的新 PNG 会停止它。不确定这是否是压缩级别的东西,但纯图像文件可以工作。
尝试了上面解释的所有提示 - 除了 .png 文件之外没有任何效果。谢谢Kqtr!
E
Entro

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


只需要拆卸我的 Mac,然后重新组装。为 iPhone 做同样的事情。相机,什么都有。奇迹般有效。
M
Maulik Patel

重新启动您的设备并清除 x 代码派生数据


m
maral

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


r
resting

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

跟随其他人的答案。

我做了以下所有事情,它是固定的:

干净的构建。

从模拟器中删除应用程序

退出模拟器

重启 XCode

再次运行应用程序


K
Kampai

好吧,目前有可用的 Retina 设备,我忽略了 Assets.xcassets 中的 @1x 图像。

就我而言,我在启动画面中有应用程序徽标,当我运行应用程序时它不可见。

在浪费了这么多时间之后,我发现我只为该徽标图像提供了 @2x@3x 图像。

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


你救了我的一天!
z
zkon

在我的特殊情况下,启动画面适用于模拟器和其他设备,但停止适用于一个特定设备。这让我相信这是 xcode(v10 和 iPhone 7 v12.1)保存的一些缓存数据。

我在 ~/Library/Developer/Xcode/DerivedData/ 处删除了派生数据,只清空文件夹内容,不删除文件夹。然后我重新启动了 mac 和 iPhone 并清理并重建了项目,现在它出现了。

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


佚名

实际上,对于一些重量级的图像,将它们添加到 images.xcassets 中并不是一个好的情况,因为应用程序会在启动前加载 images.xcassets 轻量级图像。所以我把启动画面图像放在加载的第一个根,然后问题就消失了:

在项目的根目录中创建一个新组 将您的图像拖放到黄色组文件夹中 将其重命名为不同的特殊名称 返回您的 xib(或故事板)文件并将 ImageView 寻址到它在步骤中的特殊名称3.清理并再次构建,然后您可以看到您的图像。

提示:您可以在 images.xcassets 中创建您的 ImageSet,但将它们放在项目的根目录中。


佚名

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


J
John Holtkamp

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

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

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

当您完成所有这些操作时,图像实际上应该正确显示在故事板中。有人说如果您不使用扩展名(.jpg 或 .png),图像将显示为空白,但我认为这是因为他们没有使用图像集的名称。其他人说您需要使用 .png 或 .jpg 之类的扩展名,但关键是在 xcassets 中创建图像集,然后在情节提要中使用该图像集。正确完成后,不应该出现图像未显示或启动屏幕仅在某些时候工作(需要重新启动)之类的问题。


G
Gerald Eersteling

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

将图像转换为 PNG 并对其进行处理以稍微减小尺寸后,一切正常。


W
Wajahat Hussain

我的问题。

原因:我在拖入Xcode后重命名了图像。解决方法:图片拖入Xcode后不要重命名。它为理解 Xcode 带来了问题。在拖动/添加到 Xcode 之前重命名图像。

希望它可以帮助你!


P
Prime624

我在这个问题上花了几个小时才终于意识到我的错误。当您将图像添加到 UIImageView 时,它将仅使用图像的名称。如果您的图像与故事板位于不同的文件夹中,它们将显示在 xcode 中,但在运行应用程序时不会显示。您必须添加适当的文件路径前缀,例如 images/image.png。它现在将在 xcode 中显示为一个蓝色问号,但它可以在应用程序中使用。


P
Preeti Rani

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


R
R. Mohan

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

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

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


T
Tim Christmann

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

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

也许这对任何人都有帮助。


E
Evan

就我而言,这不仅仅是重新启动设备。我的启动图像存储在其他资产(其他 Pod)中。

不得不将图像移动到 App 项目的资产中。然后重新启动我的设备。 (首先检查模拟器,它应该可以工作)。然后它起作用了。

图像可以是 png/pdf 格式,单比例与否无关紧要。


N
Nik

将图像作为常规文件导入对我有用。不要从资产目录添加图像!

https://i.stack.imgur.com/L2wcy.png

https://i.stack.imgur.com/pW1YX.png


所以我发现这种情况发生了,我也认为这与@图像有关。我删除了@2 和@3,它现在出现了!
经过 8 小时的头脑风暴后,我将 .png 图像重新导入为常规文件(在 Supporting Files 下)。 iOS 很乐意显示其他 jpeg、Apple SVG 和其他 PNG,但不显示客户端徽标,无论文件名、文件格式、大小、颜色、干净构建 + 从设备删除、重新启动 Xcode 或上述任何其他解决方案如何。很想知道我错过了什么。 (我已经使用 iOS 十多年了。也许只是糟糕的一天。)
@AndrewKingdom 不知道可能出了什么问题...尝试重命名它,重新保存为 jpeg(以进行测试),然后可能将其调整大小/重新保存为新的 PNG
B
Brian

我只是想通了。我的启动图像未显示,在设备(iPhone 6、7+)或 testFlight 上启动时出现白屏。修复:将“Landing_screen.png”重命名为“Landing_screen”,删除 .png 部分。 Xcode 中的图像图标更改为白色图标,并且在启动屏幕故事板中,图像现在显示为问号。现在会出现启动图像,而不是白屏。我的设置:我使用 Swift 3.1 和 Xcode 8.3.1。在 LaunchScreen.storyboard 我添加了一个简单的图像视图并拉伸图像以适应视图控制器。我将自动布局约束 Top/Bottom/Leading/Trailing 空间设置为 superview 为 0 - 见下图:

https://i.stack.imgur.com/MPPln.png