即使我读了几篇有关frame和view的文章,我仍然无法使它工作。我打开Xcode(7.3),为iOS创建一个新的游戏项目。在默认的场景文件中,在addChild之后,我添加了以下代码:
我运行 iPhone 6s 后得到了以下结果:
print(self.view!.bounds.width)
print(self.view!.bounds.height)
print(self.frame.size.width)
print(self.frame.size.height)
print(UIScreen.mainScreen().bounds.size.width)
print(UIScreen.mainScreen().bounds.size.height)
我运行 iPhone 6s 后得到了以下结果:
667.0
375.0
1024.0
768.0
667.0
375.0
我猜前两个数字是Retina像素大小的x2。我想了解为什么帧大小报告为1024x768?
然后我添加以下代码来调整简单背景图像以填充屏幕:
self.anchorPoint = CGPointMake(0.5,0.5)
let theTexture = SKTexture(imageNamed: "intro_screen_phone")
let theSizeFromBounds = CGSizeMake(self.view!.bounds.width, self.view!.bounds.height)
let theImage = SKSpriteNode(texture: theTexture, color: SKColor.clearColor(), size: theSizeFromBounds)
我得到的图像比屏幕尺寸小。如果选择横向模式,则图像显示得更小。
我尝试将边界宽度/高度乘以二,希望获得实际屏幕尺寸,但这样图像会变得太大。我还尝试了框架大小,使图像略大于屏幕。
除了缺乏知识之外,我困惑的主要原因是,我在一节课上看到了这个完美运作的例子。我可能错过了一些明显的东西或者?