SwiftUI 2.0:开发者热切盼望的版本带来了哪些新功能?

SwiftUI 2.0在WWDC 2020发布,引入了新的应用程序起点、LazyVStack和LazyHStack等性能优化特性,以及ScrollViewReader、ProgressView、Label、Link、ColorPicker等全新控件。SwiftUI现在支持更多自定义和便捷的UI构建,例如使用onChange监听状态变化,以及TabView的新样式和网格布局。开发者可以通过Xcode 12 beta体验这些新功能。
摘要由CSDN通过智能技术生成

全文共2274字,预计学习时长14分钟

 

SwiftUI 2.0:开发者热切盼望的版本带来了哪些新功能?

图源: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迭代则巧妙地利用了这一点。

 

SwiftUI 2.0:开发者热切盼望的版本带来了哪些新功能?

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 2.0:开发者热切盼望的版本带来了哪些新功能?

 

这一次,苹果推出了新的惰性水平堆栈视图和垂直堆栈视图,它将在你需要时加载内容,有助于SwiftUI的性能优化。现在SwiftUI列表中也引入了延迟加载。

 

来看这个实际运行的SwiftUI LazyHStack的示例:

 

struct ContentView:view{
                  var body:some View {
                                ScrollView(.horizontal){
                                          LazyHStack(spacing:10) {
                        ForEach(0 .. <1000){indexin
                        Text(“ \&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值