什么是SwiftUI

2019 年 WWDC 大会上,苹果在压轴环节向大众宣布了基于 Swift 语言构建的全新 UI 框 架 — SwiftUI。开发者可通过它快速为所有的 Apple 平台创建美观、动态的应用程序。

特点

  • 跨所有苹果平台 SwiftUI 只需使用一套工具和 API即可为苹果的所有硬件设备构建 用户界面。
  • 声明式语法 SwiftUI 采用声明式语法,可读性比较高,编写起来也比较容易理解
  • 预览功能 SwiftUI 可与 Xcode 11 无缝协作,让代码和设计完美同步。同时还提供 对动态类型、暗黑模式、本地化和可访问性的自动支持。

SwiftUI VS UIKit

  • SwiftUI 会替换掉 UIKit / AppKit / WatchKit ?当然会,但显然不是现在。SwiftUI 在 iOS 13,macOS 10.15,tvOS 13 和 watchOS 6 上运行,需要几年甚至更久才能普及。
  • 目前即使使用 SwiftUI ,还是需要使用 UIKit。UIKit 在很长一段时间内仍然是 iOS 开 发的重要组成部分。两者会共存很长一段时间。
  • 二者可以相互嵌套使用并且效果很好。

SwiftUI中视图与视图控制器

SwiftUI 提供了 View 作为 UIView 的继承者,但暂时没有提供专门的 UIViewController 的继承者,仍然是用 View 来代替。因为 SwiftUI 通过新的框架 Combine 进行数据的交互,这种新方法可以替代 UIViewController ,所以 SwiftUI
+ Combine 是今后 iOS 开发中的一对黄金搭档。

SwiftUI中自动布局

SwiftUI 使用灵活的盒子布局系统,在开发中并没有直接使用 AutoLayout 的相关知识和 API。

SwiftUI运行速度
SwiftUI 运行速度很快,甚至超越 UIKit。原因如下:

  • 压平了 UI 的层次结构,因此会做更少的绘图
  • 完全绕过 Core Animation 并直接进入 Metal

    1. <br /> <br /> <br /> <br /> <br /> <br /> <br />
    2. <br /> <br />