【发布时间】:2019-07-14 23:05:21
【问题描述】:
我在 iPhone X 在 GameScene 中绘制、缩放和定位路径时遇到问题。看起来 frame.minX 超出了屏幕的物理边界(参见比较在 iPhone X 和 iPhone 8s 上模拟的相同代码的图像)。在绘制、缩放和定位各种 SKShapeNodes、SKNodes、SKSpriteNodes 等时,如何处理此屏幕插图?我希望在绘图时能够轻松参考屏幕的真实边缘。
请注意,添加子视图可以正常工作(如果使用 UIScreen.main.bounds 而不是框架,则 UIView、按钮等都将与屏幕边缘对齐)
我曾尝试在引用框架和屏幕时绘制 SKShapeNodes,但两者都无法在 iPhone X 屏幕的真实边缘和其他 iPhone 的真实边缘精确绘制。
override func didMove(to view: SKView) {
let shape = SKShapeNode()
shape.path = UIBezierPath(rect: CGRect(x: 0, y: 0, width: 200, height: 200)).cgPath
shape.fillColor = .green
shape.position = CGPoint(x: frame.minX, y: frame.maxY - shape.frame.height)
addChild(shape)
}
对于所有模拟,绿色方块都与屏幕的左边缘完美对齐。但是,在 iPhone X、Xs、Xs Max 和 Xr 上,情况并非如此。
【问题讨论】:
标签: ios swift iphone sprite-kit