gpt4 book ai didi

ios - 在 iOS 上,当某些维度信息不可用时,我们如何在 viewDidLoad 中在屏幕上绘制内容?

转载 作者:行者123 更新时间:2023-11-29 11:09:55 25 4
gpt4 key购买 nike

在应用程序启动时,我直接在 CGBitmapContext 上绘制内容,将其转换为 CGImage,然后将其设置为 viewDidAppear 中的 View 层

它实际上相当快,但由于 Apple 要求向应用程序添加启动图像,因此我添加了一个屏幕外观的静态图像作为启动图像。

然而,接下来发生的是当应用程序启动时,启动图像显示,但屏幕将在 0.5 到 1 秒后变黑,我认为是由于 viewDidLoad 启动和 viewDidAppear 开始运行,但在开始时,屏幕一片空白。

然后在 0.5 秒后,一切都显示出来,但这会产生白屏的“闪光”。

所以看起来至少有两个选项,它们是

  1. 只是让 Launch 图像完全空白,但我不确定 Apple 是否会拒绝该应用程序,因为他们想要“应用程序初始外观的静态图像”......但我想知道是否初始图像显示得如此之快(0.5 到 1 秒,他们还会介意吗?)

  2. 另一种选择是将所有绘图从 viewDidAppear 移动到 viewDidLoad,但我发现 viewDidLoad 中缺少一些信息>,比如viewDidLoad中的self.view.bounds{{0, 0}, {768, 1004}},它变了到 viewDidAppear 中正确的 {{0, 0}, {320, 460}}(正在 iPhone 4S 上测试)。

所以我认为 viewDidLoad 中的某些 View 信息尚未正确设置,这是一个进退两难的问题。一种方法可能是检查它是 iPad 还是 iPhone,并对 self.view.bounds 值进行硬编码,但是否有更好的方法来做到这一点?

最佳答案

在您在 viewWillAppear 期间启动的后台线程上创建您的 CGImage,然后您将拥有尺寸。

也许在 viewDidLoad 中将 View 背景设置为与您的启动图像相同,这样当您绘制 CGImage 时,用户就不会看到闪烁。

关于ios - 在 iOS 上,当某些维度信息不可用时,我们如何在 viewDidLoad 中在屏幕上绘制内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12012869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com