【问题标题】:How to fill iPhone X Simulator's background programmatically without Storyboards如何在没有情节提要的情况下以编程方式填充 iPhone X 模拟器的背景
【发布时间】:2020-08-21 15:40:40
【问题描述】:

所以我创建了一个没有核心数据、没有测试的新 iOS 单视图应用程序,然后我删除了 Main.storyboard 和启动屏幕故事板。 我想尽可能多地编写代码,以便了解我在做什么(因为我只是在学习 iOS 编程)。问题是,我无法用背景图像填充整个 iPhone X 屏幕。我首先使用情节提要尝试过,没有任何问题。我错过了什么吗?

// 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)
        ])
    }
}

【问题讨论】:

  • 您只需要在 iPhone X 上设置正确的启动画面。
  • 那里,代码而不是图像(:. 抱歉
  • 如果不正确添加设置启动画面是不可能的
  • 最简单的方法是使用启动故事板。这将自动调整所有设备的大小,并让 iOS 知道您的应用程序知道 iPhone X
  • 是的,您可以使用图像文件,但是随着新设备的发布,您需要不断添加更多正确尺寸的图像,并且您必须创建所有这些资产

标签: ios iphone swift


【解决方案1】:

总结上面的 cmets,您需要使用启动故事板,以便 iOS 为您提供覆盖设备全部边界的 UIScreen。

如果您还没有启动故事板,请通过File > New > File... > Launch Screen 在 Xcode 11 中创建一个。然后确保在您的应用目标 > 常规 > 启动屏幕文件下选择启动故事板。

【讨论】:

    猜你喜欢
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多