gpt4 book ai didi

ios - 按钮出现在 SCNView 之前的屏幕上

转载 作者:行者123 更新时间:2023-11-28 21:35:44 26 4
gpt4 key购买 nike

在 Storyboard 中,我将按钮作为 SCNView 的 sibling 附加到主视图(按钮和 SCNView 都是主视图的 subview )。在启动时,按钮先于 SCNView 出现在屏幕上。这是很不幸的。您知道如何解决这个问题吗?

//编辑:在 viedDidLoad: 中以编程方式添加按钮:作为 SCNView 的 subview 。仍然是同样的问题。

enter image description here

SettingsButton 和 View 出现在 SceneView 之前。这发生在 iPhone 5,5c 及更低版本和 iPad 上。(肯定是 3,不知道其他人)

以编程方式添加 View 的代码:

let uv = UIView(frame:myFrame)
uv.backgroundColor = UIColor.blackColor
sceneView.addSubview(uv)// scene view from storyboard

就是这样。 iOS 怎么可能需要 5-10 秒来加载一个应用程序,而不是匆忙地以不可预测的顺序向屏幕添加 View 。难道它不能多花 0.2 秒并正确呈现 View 吗?真是愚蠢的问题

最佳答案

我想如果您通过调试器断点或登录 viewDidLoad 进行检查,您会立即发现 SCNView 实例确实位于 View 层次结构中。

您看到的是所述 View 的 SceneKit 内容 没有立即出现。根据您使用 SceneKit 执行的操作,加载内容和准备渲染可能需要一些时间,在此期间 View 层次结构的其余部分仍然可见。这种延迟可能是不可避免的——您可以通过优化 Assets 格式、减少场景中的内容等来最大程度地减少它。所以听起来这里的关键问题是让您的应用程序启动体验看起来像您想要的方式,同时考虑到延迟。

执行此操作的一个好方法可能是在 SceneKit 准备好显示之前显示某种启动图像。您可以在 Storyboard中放置一个 UIImageView,设置为使用启动画面掩盖所有内容(可能是 iOS 在您的应用程序接管之前显示的相同启动图像),然后隐藏该 ImageView (淡出)甚至?)当 SceneKit 开始渲染时。

要了解 SceneKit 何时开始渲染,请将您的对象之一设为场景渲染器委托(delegate)并实现 renderer:didRenderScene:atTime: .该方法会在每一帧上调用,因此您可以使用它来捕捉第一帧的渲染时间(然后在后续帧中忽略它)。

关于ios - 按钮出现在 SCNView 之前的屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34002817/

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