Ios 当设备处于不同方向时,调整Swift Playgrounds live view的大小

Ios 当设备处于不同方向时,调整Swift Playgrounds live view的大小,ios,swift,uiview,sprite-kit,swift-playground,Ios,Swift,Uiview,Sprite Kit,Swift Playground,我正在尝试在iPad上的Swift操场上运行一个简单的spritekit游戏 到目前为止,我有以下代码: let frame = CGRect(x: 0, y: 0, width: 400, height: 600) let view = SKView(frame: frame) let scene = GameScene(size: frame.size) //gamescene, of course, is the spritekit scene that exists in a dif

我正在尝试在iPad上的Swift操场上运行一个简单的spritekit游戏

到目前为止,我有以下代码:

let frame = CGRect(x: 0, y: 0, width: 400, height: 600)
let view = SKView(frame: frame)


let scene = GameScene(size: frame.size)
//gamescene, of course, is the spritekit scene that exists in a different file.
view.presentScene(scene)
PlaygroundPage.current.needsIndefiniteExecution = true
PlaygroundPage.current.liveView = view
以通常的方向运行(iPad侧面,代码在左边,实时视图在右边)看起来完全正常。但是,当我垂直转动iPad时(底部显示代码,顶部显示实时视图),场景会垂直挤压。无论我是在游戏运行时还是在游戏运行前打开iPad,这种挤压都会发生

我想这是因为我的硬编码帧变量,但我见过其他人能够在不考虑方向的情况下以正确的大小运行他们的游乐场(即使在应用程序运行时很难调整大小)。这是怎么做到的


谢谢

你需要更新你的框架,即使你正在旋转它,你的游戏场景框架将保持横向,从而导致problem@Knight0fDragon有趣。当方向改变时,更新画面最简单的方法是什么?在操场上,我不知道,必须有一种方法来捕捉方向。不管怎样,我已经解决了这个问题。设置场景的scene.scaleMode属性允许它在方向或排列发生更改时调整大小(我使用了SKSceneScaleMode.resizeFill,但这可能不适合所有人)。