我更新了我的游戏,本以为它支持iPhone Xs和iPad 11英寸屏幕,因为在模拟器上完美地适配了屏幕(非常令人沮丧),但当在实际设备上测试时却不行。似乎根视图(即我的SKView)受到安全区域插图的限制。像这张图片一样,游戏场景也受到了限制。
我在UIViewController类中使用了这个方法将根视图设置为一个大小为设备屏幕的SKView。
override open func loadView() {
view = SKView(frame: UIScreen.main.bounds)
}
首先创建一个与SKView具有相同宽高比(但大小不相同)的场景,然后让它自适应SKView。例如,对于iPhone X / Xs / XsMax / Xr,someSpecifiedSize将是(812,375),对于iPhone 5,6,7,8则为(667,375),对于所有iPad除了11英寸的iPad,大小为(667,500)。这可能很奇怪,但由于我的游戏性质,必须如此。
let scene = SKScene(size: someSpecifiedSize)
scene.scaleMode = .aspectFill
我不理解为什么视图包含安全区域,因为我在定义大小时没有使用插入物。我如何使SKView的大小与设备屏幕的大小相同,而不是安全区域的大小?