SwiftUI概述
Swift UI不是什么新的东西了,是iOS13苹果推出的搭建UI的框架,它比UIKit使用起来更佳简单、代码更少、搭建速度更快, 同时它可以编写 iOS不同平台 iOS、 iPadOS 、macOS 、WatchOS 等 。同时,SwiftUI使用声明式语法,所以看起来更简单、更易于阅读,节省了开发时间和维护时间。
设计工具
Xcode 对SwiftUI的支持,Xcode提供能比较直观的设计工具,在设计画布中工作时,当编辑的所有内容都与相邻编辑器中的代码完全同步。代码会立即显示为预览,该预览所做的任何更改都会立即出现在代码中。Xcode 会立即重新编译您的更改,并将它们插入 app 的运行版本中,并且可以随时查看和编辑。
拖放。
只需拖动画布上的控件,即可在用户界面中排列组件。
点按以打开检查器,以选择字体、颜色、对齐方式和其他设计选项,并轻松地使用光标重新排列控件。许多这些可视化编辑器也可以在代码编辑器中使用,因此您可以使用检查器为每个控件发现新的修饰符,即使您更喜欢界面的手动编码部分。您还可以从库中拖动控件,并将其放置在设计画布上或直接放在代码上。
动态更换。
Swift编译器和运行时已完全嵌入到整个Xcode中,因此您的应用程序正在不断构建和运行。您看到的设计画布不仅仅是用户界面的近似值,而是您的实时应用程序。Xcode 可以在实时 app 中直接将编辑后的代码与 Swift 中的新功能“动态替换”进行交换。
预览。
现在可以为任何SwiftUI视图创建一个或多个预览以获取示例数据,并配置用户可能看到的几乎所有内容,如大字体、本地化或深色模式。预览还可以在任何设备和任何方向上显示您的用户界面。
LandmarkList_Previews 预览提供程序添加代码,以呈现不同设备尺寸的列表视图的预览。 默认情况下,预览以活动方案中设备的大小呈现。
可以使用 previewDevice(:) 修饰符方法来更改预览设备。
可以使用 previewDisplayName(:) 修饰符将设备名称添加为预览的标签。
单个预览页面
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
LandmarkList()
.environmentObject(ModelData())
}
}
多个预览页面
struct LandmarkList_Previews: PreviewProvider {
static var previews: some View {
ForEach(["iPhone SE (2nd generation)", "iPhone XS Max"], id: \.self) { deviceName in
LandmarkList()
.previewDevice(PreviewDevice(rawValue: deviceName))
.previewDisplayName(deviceName)
}
}
}