我想编写一个简单的 Sprite Kit 游戏,我必须在场景中随机放置一些节点。
为了确保这些节点不会放置在安全区域之外,我编写了这个函数:
func updatesafearea() {
let frame = self.size
let sets = view!.safeAreaInsets
let rect = CGRect(x: -(frame.width/2)-sets.left,
y: -(frame.height/2)-sets.top,
width: frame.width-sets.right-sets.left,
height: frame.height-sets.top-sets.bottom)
//Visualize the area
let node = SKShapeNode(rect: rect)
node.fillColor = .red
addChild(node)
}
这应该是一个所有节点都应该安全呈现的矩形,但不幸的是这在 iPhone X(模拟器)上不起作用:
iPhone 8 和 iPhone X 模拟器截图如下: