全文共2274字,预计学习时长14分钟
图源:unsplash
很多人翘首以盼的SwiftUI 2.0在WWDC 2020中诞生了。不出所料,苹果在主题演讲结束时对SwiftUI进行了一些全新的API更新,这些新改进本质上是附加的,没有任何违背或更改会破坏旧的13个SwiftUI代码库。
本文就将带你一览iOS14新发布的SwiftUI控件。你需要一个Xcode 12 beta(最低要求macOS版本为10.15.4)来运行新的SwiftUI控件。让我们开始吧!
新的SwiftUI应用程序起点
截至目前,我们必须使用AppDelegates和SceneDelegates设置第一个SwiftUI视图。Swift 5.3引入了一个基于类型的程序入口点,可以使用@main属性进行设置,而最新的SwiftUI迭代则巧妙地利用了这一点。
Xcode 12新项目
SwiftUI现在提供了在应用程序启动时调用的以下结构:
@main
struct WhatsNewiOS14SwiftUIApp:App{
var body:some Scene{
WindowGroup {
ContentView()
}
}
}
WindowGroup是其中的一个场景属性,我们可以定义起始视图层次结构。在WindowGroup计算属性内设置TabView、NavigationViews或者App Clip。
SwiftUI:LazyVStack和LazyHStack
以前,SwiftUI视图用于立即加载,这导致在填充大量数据时会出现性能和内存问题。在SwiftUI的第一次迭代中,NavigationLink的目的地视图也用于预先加载内容。
这一次,苹果推出了新的惰性水平堆栈视图和垂直堆栈视图,它将在你需要时加载内容,有助于SwiftUI的性能优化。现在SwiftUI列表中也引入了延迟加载。
来看这个实际运行的SwiftUI LazyHStack的示例:
struct ContentView:view{
var body:some View {
ScrollView(.horizontal){
LazyHStack(spacing:10) {
ForEach(0 .. <1000){indexin
Text(“ \&#