我在滚动时遇到卡顿/滞后现象。
它只出现在 iPhone5 och 上,很少出现在 iPhone 5s 上。 它只在按住手指时出现,而不是在 ScrollView 减速时出现。 它看起来非常随机,但一旦开始滞后,它总会持续一段时间。
可能是跳出主屏再跳回主屏几次触发(有时一会有效,有时卡顿几乎一直出现)。正如我所说,它是随机发生的,所以如果您尝试这个示例项目并且没有看到任何卡顿,请耐心等待并尝试更多。
示例工程是基于SpriteKit游戏模板,为了方便调试,我尽量少改动。
示例项目:https://github.com/bobmoff/ScrollStudderingExample
我正在就此事与 Apple 支持人员联系,但到目前为止,他们只提到他们会将其发送给从事 SpriteKit 工作的技术人员,然后再回复我。
我已经为这个问题苦苦挣扎了大约一年,所以如果有人想出一个真正的解决方案来解决为什么会发生这种情况,我会高兴得哭出来。
最佳答案
这只是一个想法:您是否尝试过将 scrollViewDidScroll
方法与动画解耦? (就像 Javacript 中的“去抖动”滚动事件。)
我现在无法测试它,并不是说这是好的做法,但我很好奇这是否能解决问题……
抽象示例:
某处的全局变量:
CGPoint globalVar;
在 View Controller 中:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
globalVar = scrollView.contentOffset;
}
在 SKScene 中:
-(void)update:(CFTimeInterval)currentTime {
spriteToScroll.position = globalVar;
}
关于ios - 将 UIScrollView 与 SpriteKit 一起使用时出现随机问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22425449/