在故事板中,我把按钮附加到主视图上,就像SCNView的兄弟一样(按钮和SCNView都是主视图的子视图)。在启动时,按钮会在SCNView出现之前出现在屏幕上。这是相当不幸的。你知道怎么解决这个问题吗?
//编辑:在viedDidLoad中以编程方式添加按钮:作为SCNView..Still的子视图,同样的问题。

SettingsButton和View出现在SceneView之前。这种情况发生在iPhone 5,5c和更低的iPads上。
编程添加视图的代码:
let uv = UIView(frame:myFrame)
uv.backgroundColor = UIColor.blackColor
sceneView.addSubview(uv)// scene view from storyboard就是这样。iOS怎么能用5-10来加载一个应用程序,而不是按照不可预测的顺序向屏幕添加视图。难道就不能多花0.2秒才能正确地呈现观点吗?真是愚蠢的问题
发布于 2015-11-30 20:18:34
我想,如果您通过调试器断点或viewDidLoad中的日志进行检查,您会发现SCNView实例确实处于视图层次结构中。
您所看到的是,上述视图的SceneKit内容不会立即出现。根据您对SceneKit所做的操作,加载内容和准备呈现可能需要一些时间,在此期间,视图层次结构的其余部分仍然是可见的。这种延迟可能是不可避免的--你可以通过优化资产格式、减少场景中的内容数量等方式将其降到最低。因此,这里的关键问题似乎是让你的应用程序发布体验看起来像你想要的样子,同时考虑到延迟的原因。
这样做的一个好方法可能是显示某种类型的飞溅图像,直到SceneKit准备好显示为止。您可以在您的故事板中放置一个UIImageView,设置为用一个启动屏幕掩盖一切(可能与应用程序接管之前iOS显示的启动图像相同),然后隐藏该图像视图(是否还会褪色?)当SceneKit开始呈现时。
要了解SceneKit何时开始呈现,请将其中一个对象指定为场景呈现器委托,并实现渲染者:didRenderScene:atTime:。该方法在每个框架上都会被调用,因此您可以在呈现第一个框架时使用它来捕获它(然后对后续帧忽略它)。
https://stackoverflow.com/questions/34002817
复制相似问题