如果我打印self.size我得到(320,480)但它应该是(480,320),因为我的应用程序是横向的,这就是我进入主视图的方式:
var playScene = Menu(size: self.size)
let skView = self.view! as SKView
skView.ignoresSiblingOrder = true
playScene.scaleMode = .ResizeFill
playScene.size = skView.bounds.size
skView.presentScene(playScene)
编辑:我发现在iphone 5s上,self.size是(568,320)所以问题只出现在iphone 4s或IOS 7上
答案 0 :(得分:0)
在UIKit运行布局之前,视图的大小不会更新。在viewDidLoad
返回后发生这种情况。因此,如果该代码位于viewDidLoad
,那么您的检查时间过早了。查看viewDidLayoutSubviews
或viewDidAppear:
中的尺寸。
答案 1 :(得分:0)
我必须使用此功能才能为我正在使用的设备获得正确的屏幕尺寸:
func screenSize() -> CGSize {
var screenSize: CGSize = UIScreen.mainScreen().bounds.size
if ((NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_7_1) && UIInterfaceOrientationIsLandscape(UIApplication.sharedApplication().statusBarOrientation)) {//If ios 7
return CGSizeMake(screenSize.height, screenSize.width);
}
return screenSize;
}
我替换我的代码将视图更改为:
var playScene = Menu(size: self.size)
let skView = self.view! as SKView
skView.ignoresSiblingOrder = true
playScene.scaleMode = .ResizeFill
playScene.size = screenSize()
skView.presentScene(playScene)