iOS 应用程序未使用屏幕的全高

问题描述 投票:0回答:2

我创建了一个示例 iOS 应用程序,其中删除了故事板、启动屏幕、

SceneDelegate
,并创建了一个空白的
UIViewController

主视图控制器

class MainViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = .green
    }
}

应用程序委托:

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        window = UIWindow(frame: UIScreen.main.bounds)
        window?.rootViewController = MainViewController()
        window?.makeKeyAndVisible()

        return true
    }
}

信息.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>

我的问题是我的视图没有占据屏幕的整个高度,我认为

UIWindow(frame: UIScreen.main.bounds)
应该足够了,但我一直看到这个屏幕

ios swift user-interface uiviewcontroller appdelegate
2个回答
3
投票

“我删除了......启动屏幕”

这就是问题所在。所有 iOS 应用程序都必须有一个启动屏幕故事板,即使应用程序的其余部分是在没有故事板的情况下完成的。至少对于基于 UIKit 的应用程序来说是这样,但不确定 SwiftUI 应用程序是否如此。

如果没有启动屏幕故事板,应用程序将退回到仅支持旧的 3.5 英寸(或可能 4 英寸)iOS 设备尺寸。这会导致较大设备上出现黑条(称为信箱)。包含启动屏幕故事板告诉应用程序它可以处理所有可能的屏幕尺寸。

您的启动屏幕故事板应该复制应用程序初始屏幕的大大简化版本。整个想法是让用户产生应用程序启动速度比实际速度更快的错觉。尽管在更新、更快的硬件上,它的实用性已经减弱。


0
投票

我还必须将新创建的启动屏幕添加到:常规>启动屏幕文件

我正在构建一个 Mac 应用程序,后来添加了 iOS,这导致了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.