如何在 Xcode 11 中以编程方式创建 UI?

fan*_*ber 10 xcode swift

更新:终于让它工作了。请参阅下面的代码SceneDelegate.swift

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let windowScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowScene.coordinateSpace.bounds)
        window?.windowScene = windowScene
        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()
    }
Run Code Online (Sandbox Code Playgroud)

与在线教程和文章相比,我无法使用最新的 Xcode 创建工作 UI。Xcode 10 也是这种情况,但我当时并不关心。

我的步骤如下:

  1. 删除 Main.storyboard
  2. Main从项目设置中删除

编写基本UIWindow代码:

    var window: UIWindow?

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

        return true
    }
Run Code Online (Sandbox Code Playgroud)

在这一点上,我收到一条错误消息,说找不到Main包中命名的故事板。如果我继续清除 中的条目Info.plist,这次它会抱怨故事板名称中没有足够的字符。

有任何想法吗?

AKI*_*MAR 16

这些是我在 Xcode 11 中以编程方式运行 UI 所遵循的步骤。

1)像往常一样创建一个新项目

2)我Main.Storyboard从左侧的项目导航器中删除了该文件。

3)在常规选项卡中,我MainMain Interface下拉列表中 删除了该选项在此处输入图片说明 4)接下来,转到您的Info.plist文件并Storyboard Name从列表中完全删除

在此处输入图片说明

5) 现在,如果您运行该应用程序,它应该不会崩溃,并且应该会向您显示黑屏。

6)接下来,转到SceneDelegate.swift文件并UIWindow像往常一样初始化您的对象。这里有一个问题,它是 Xcode 11 中的新功能。您还要设置对象的windowScene属性window,否则它将无法工作。 在此处输入图片说明

7) 全部完成后,转到您的 ViewController 类并将视图的背景颜色设置为某种颜色,您应该一切顺利。 在此处输入图片说明

您还可以使用模板: Xcode 11 Programmatic UIKit 模板

希望这对你有帮助!!!