Ios 如何填充iPhoneX模拟器';在没有故事板的情况下以编程方式创建背景

Ios 如何填充iPhoneX模拟器';在没有故事板的情况下以编程方式创建背景,ios,iphone,swift,Ios,Iphone,Swift,因此,我创建了一个新的iOS单视图应用程序,没有核心数据,没有测试,然后删除了Main.storyboard和启动屏幕storyboard。 我希望尽可能多地使用代码,这样我就能理解我在做什么(因为我只是在学习iOS编程)。问题是,我无法用背景图像填充整个iPhoneX屏幕。我第一次尝试使用故事板,没有任何问题。我错过什么了吗 // AppDelegate.swift class AppDelegate: UIResponder, UIApplicationDelegate { va

因此,我创建了一个新的iOS单视图应用程序,没有核心数据,没有测试,然后删除了Main.storyboard和启动屏幕storyboard。 我希望尽可能多地使用代码,这样我就能理解我在做什么(因为我只是在学习iOS编程)。问题是,我无法用背景图像填充整个iPhoneX屏幕。我第一次尝试使用故事板,没有任何问题。我错过什么了吗

// AppDelegate.swift

class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        window = UIWindow(frame: UIScreen.main.bounds)

        let mainController = MainController()

        window?.rootViewController = mainController
        window?.makeKeyAndVisible()

        return true
    }
}


// MainController.swift

import UIKit

class MainController: UIViewController {
    let background: UIImageView = {
        let image = UIImageView(image: #imageLiteral(resourceName: "bg"))
        image.translatesAutoresizingMaskIntoConstraints = false
        return image
    }()
}

extension MainController {
    override func viewDidLoad() {
        super.viewDidLoad()

        setupBackground()
    }
}

extension MainController {
    func setupBackground() {
        view.addSubview(background)

        NSLayoutConstraint.activate([
            background.leadingAnchor.constraint(equalTo: view.leadingAnchor),
            background.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            background.topAnchor.constraint(equalTo: view.topAnchor),
            background.bottomAnchor.constraint(equalTo: view.bottomAnchor)
        ])
    }
}

要总结以上评论,您需要使用启动情节提要,以便iOS为您提供一个涵盖设备全部功能的UI屏幕


如果您还没有启动情节提要,请通过
文件
新建
文件…
启动屏幕
在Xcode 11中创建一个启动情节提要。然后确保在你的应用目标>常规>启动屏幕文件下选择启动情节提要。

你只需要在iPhone X上设置正确的启动屏幕。在那里,代码而不是图像(:。很抱歉,如果没有正确添加设置启动屏幕,则不可能。最简单的方法是使用启动情节提要。这将自动调整所有设备的大小,并让iOS知道您的应用程序知道iPhone XYes,您可以使用图像文件,但随着新设备的发布,您需要继续添加更多具有正确尺寸的图像你必须创建所有这些资产