iOS 纯代码UI 新项目配置

为什么纯代码写 UI?

  • Storyboards 由于其复杂的 xml 结构更容易出现兼容性问题, 合并的时候相对纯代码麻烦.
  • 使用纯代码更方便复用,使代码库更简洁.
  • 在一个位置完成所有 UI 自定义, 而 Storyboard 需要反复点击 inspectors 去设置.
  • Storyboard 增加了 UI 和代码的耦合度, 如果没有正确配置好 outlet 和 action 会造成崩溃,且这些问题并不会被编译器监测到.

新项目纯代码编写如何设置?

首先,删除 Storyboard
点击项目名, General - Deployment Info - Main Interface 中删除 Main
Info.plist 中 Application Scene Manifest 中 删除 Storyboard 的 key

Xcode 会生成 AppDelegate 和 SceneDelegate 两个委托文件,

AppDelegate 的 didFinishLaunchingWithOptions 中加入:

1
2
3
window?.makeKeyAndVisible()
window?.rootViewController = UINavigationController(rootViewController: ViewController())
//这里的rootViewController可自行设置

SceneDelegate 的 willConnectTo 中加入:

1
2
3
4
5
6
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene // <-- Window Scene set to UIWindow
window?.rootViewController = ViewController(nibName: nil, bundle: nil)
//这里的rootViewController可自行设置
window?.makeKeyAndVisible()
1
Command + R