ios – Swift SKSpiteNode位置iPhone V iPad

我使用以下代码在我的应用程序的视图左上角放置了一个节点:

health = SKSpriteNode(color: .green, size: CGSize(width: progressValue, height: 50))
health.position = CGPoint(x: -self.frame.width / 2, y: self.frame.height / 2)

这可以在所有iPhone模拟器中正确定位,范围从5到7加.

但是,它不会出现在任何iPad模拟器中.我把位置设置为midX和midY,看起来很好,只是没有上面显示的代码适用于所有iPhone.

我错过了什么?

是否有不同的方法在iPhone v iPad的视图上定位节点而不是使用多个视图?

最佳答案 解决了:

问题是场景scaleMode被设置为.aspectFill,这对iPhone而言并不适用于iPad.

然而.resizeFill工作得很好,所以这就是我所做的.

if UIDevice.current.userInterfaceIdiom == .pad {

                scene.scaleMode = .resizeFill

            }else{

                scene.scaleMode = .aspectFill


            }
点赞