【问题标题】:Why am I getting two different screen dimensions in different projects (Swift)?为什么我在不同的项目(Swift)中得到两个不同的屏幕尺寸?
【发布时间】:2020-10-23 06:10:59
【问题描述】:

在学习 Swift 时,我刚刚完成了我的第一个应用程序的一个非常粗略的草稿。所以我决定重新制作应用程序,以便我的代码更清晰/更合规,等等。

我不使用故事板, 我从 GameViewControler 启动, 这两个应用程序都设置为最低 iOS 13.5, 两者都在 iPhoneX 模拟器上运行......以及我的 iPhoneX 本身。

但由于某种原因,在每个不同的应用程序中,我的屏幕尺寸都不同!我会假设我在“创建”新项目时做了一些不同的事情,但我无法区分那是什么。

这是我的整个 GameViewController.swift 文件,其中包含一张不同屏幕尺寸的照片。我在获得边界和原生边界后立即中断。

Two different screen sizes

import UIKit
import SpriteKit

class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        if let view = self.view as! SKView? {

            var wPix = UIScreen.main.nativeBounds.width
            var hPix = UIScreen.main.nativeBounds.height
            var wPoi  = UIScreen.main.bounds.width
            var hPoi  = UIScreen.main.bounds.height

            var scene : GameScene!
            DispatchQueue.main.async { [self] in
                     scene = GameScene(size: CGSize(width: wPoi, height: hPoi))


            scene.anchorPoint = CGPoint(x: 0.0, y: 0.0)
            scene.backgroundColor = .red
            scene.scaleMode = .aspectFit
            view.isHidden = false
            view.presentScene(scene)
            }

            view.ignoresSiblingOrder = true
            view.showsFPS = true
            view.showsNodeCount = true
            view.showsPhysics = true
        }
    }

    override var shouldAutorotate: Bool {
        return false
    }

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
        if UIDevice.current.userInterfaceIdiom == .phone {
            return .allButUpsideDown
        } else {
            return .all
        }
    }

    override var prefersStatusBarHidden: Bool {
        return false
    }
}

【问题讨论】:

    标签: swift uiview sprite-kit


    【解决方案1】:

    似乎与我的旧项目不同,我的新项目中没有 Launch Screen.storyboard。由于我刚开始学习这种语言,我不记得我之前是手动添加的,还是 Xcode 11 自动包含了它。我现在在 Xcode 12.x 上

    据我了解,问题的要点在于,如果没有启动屏幕情节提要,屏幕尺寸会设置为较小的尺寸。

    有人给了我下面的链接,它解释了它发生的原因和原因。

    Main screen size is always 320x480?

    在阅读了上面链接提供的答案后,我还找到了下面的网页,它也对我有帮助。

    Using a Launch Screen Storyboard

    【讨论】:

      猜你喜欢
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多