ios - Swift SKSpriteNode 位置 iPhone V iPad

标签 ios iphone swift ipad

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

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 Plus。

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

我错过了什么?

对于 iPhone 和 iPad,是否有不同的方法在 View 上定位节点而不是使用多个 View ?

最佳答案

已解决:

问题是场景 scaleMode 被设置为 .aspectFill,这对 iPhone 非常有用,但对 iPad 却不行。

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

if UIDevice.current.userInterfaceIdiom == .pad {

                scene.scaleMode = .resizeFill

            }else{

                scene.scaleMode = .aspectFill


            }

关于ios - Swift SKSpriteNode 位置 iPhone V iPad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43312844/

相关文章:

ios - 如何使用Out @State 变量更新 SwiftUIView?和段错误问题

ios - GCDAsyncUdpSocket, "Cannot bind socket more than once"

iOS7 隐藏状态栏

iphone - 想要创建一个变量,增加它并获得新值

ios - 如何在 Swift 的表格 View 单元格中进行有限的多重复选标记?

UTC 到本地时间的 IOS 转换不准确

ios - 使用来自dispatch_async的变量

ios - 如何防止 UIWindow 成为关键窗口?

iphone - iOS - 异步缓存和加载图像

ios - 是否可以将 native iOS 应用程序转换为 Web 应用程序?