【发布时间】:2014-10-29 22:47:50
【问题描述】:
我有一个子类 UINavigationController,它通过调用 [self pushViewController:controller animated:YES] 在一系列视图控制器中导航。
每个视图控制器都包含一个 SKScene。
视图控制器之间的转换看起来很糟糕,所以我决定通过将动画标志切换为NO 来更改它,即[self pushViewController:controller animated:NO]。但是,当我将此标志从 YES 更改为 NO 时,我的 SKScene 大小会翻倍。就好像它认为我在改变retina/@2x 属性什么的。
为什么动画标志会影响 SKScene 帧大小?以及如何在没有动画的情况下在视图控制器之间进行转换?
【问题讨论】:
-
您不应该这样做,而是在场景而不是视图及其控制器之间进行转换。为每个“过渡”重新创建 sk 视图效率低下。
-
总的来说,我同意。但是,这里的问题是我的
SKViews包含在逻辑更改的视图控制器中。这种情况我该怎么办? -
好吧,仍然,在 SK 中你有一个视图和一个视图控制器。如果你需要根据场景改变一些逻辑,这个逻辑应该放在场景子类中。您的视图控制器应该只根据需要将任何事件委托给场景以允许场景处理它。在 SK 中,场景有点像给定场景的视图控制器。
-
嗯。我的项目使用 UICollectionView 来显示 SpriteKit 节点与之交互的网格方块(音乐笔记)。这种实施方式不可取吗?那么我将如何在 SpriteKit 中实现 UICollectionView 呢?
-
好吧,你不能将精灵“添加”到集合视图中,因为它们本身不是视图
标签: ios cocoa-touch uiviewcontroller uinavigationcontroller sprite-kit