我将代码从目标c转换为swift。我使用self.frame来检测帧大小。我在iPhone 6模拟器上进行测试。以下目标c代码将self.frame返回为0,0,375,667。但是,swift代码将self.frame返回为(0.0,0.0,1024.0,768.0)。造成这种差异的原因是什么?
CGFloat yDiv = CGRectGetMaxY(self.frame)/5.0;
NSLog(@"%@", NSStringFromCGRect(self.frame));
目标C代码记录{{0,0},{375,667}}
在Swift中
var yDiv:CGFloat = CGRectGetMaxY(self.frame)/5.0
println("\(self.frame)")
Swift代码打印出来(0.0,0.0,1024.0,768.0)到控制台。
答案 0 :(得分:1)
之所以发生这种情况,是因为我使用的是Xcode附带的iOS“游戏”模板。我不得不改变viewController中的代码来设置正确的边界
let scene:SKScene = GameScene.init(size: skView.bounds.size)
希望这有助于其他人。