SKScene didChangeSize:多次调用

时间:2014-02-27 21:55:18

标签: ios sprite-kit

为什么每次更改方向时都会调用两次? 这是一个错误还是?

当我无效地覆盖setSize时,甚至会被调用。

2 个答案:

答案 0 :(得分:1)

这不是错误。这是一种正确的行为。

- (void)didChangeSize:(CGSize)oldSize
每当场景的大小改变时,都会调用

。旋转设备时,这显然会发生。它也可能是您在轮换发生后调用一些代码来触发大小更改,这就是您看到didChangeSize被调用两次的原因。

答案 1 :(得分:0)

我的解决方案是覆盖 setter。在 Objective-C 中,您只需覆盖 bind = '0.0.0.0:8080' accesslog = '-' access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s" in %(D)sµs' 并且不要忘记调用 -setSize:。在 Swift 中,您可以覆盖 super 变量并实现 size:

didSet

就我而言(Swift UI SpriteView)override var size: CGSize { didSet { print("didSetSize:", size) } } 每次更改被调用两次,而 didSet - 只调用一次。我的控制台日志如下:

didChangeSize