AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

SwiftUI 在 WWDC 24 之后的新變化

來源: 責(zé)編: 時間:2024-06-25 17:20:33 160觀看
導(dǎo)讀前言WWDC 24 已經(jīng)到來,我們有很多內(nèi)容要討論。每年,SwiftUI 都會通過引入更多功能來趕上 UIKit。今年也不例外。讓我們深入了解 SwiftUI 框架引入的新功能。我首先要提到的主要變化是 App、Scene 和 View 協(xié)議的 @MainA

前言

WWDC 24 已經(jīng)到來,我們有很多內(nèi)容要討論。每年,SwiftUI 都會通過引入更多功能來趕上 UIKit。今年也不例外。讓我們深入了解 SwiftUI 框架引入的新功能。GXI28資訊網(wǎng)——每日最新資訊28at.com

我首先要提到的主要變化是 App、Scene 和 View 協(xié)議的 @MainActor 隔離。這可能會破壞你的代碼,所以請記住這一點。GXI28資訊網(wǎng)——每日最新資訊28at.com

視圖集合

SwiftUI 為 Group 和 ForEach 視圖引入了新的重載,允許我們創(chuàng)建自定義容器,如 List 或 TabView。GXI28資訊網(wǎng)——每日最新資訊28at.com

struct AppStoreView<Content: View>: View {    @ViewBuilder var content: Content        var body: some View {        VStack {            Group(subviewsOf: content) { subviews in                HStack {                    if !subviews.isEmpty {                        subviews[0]                    }                                        if subviews.count > 1 {                        subviews[1]                    }                }                                if subviews.count > 2 {                    VStack {                        subviews[2...]                    }                }            }        }    }}

如上例所示,我們使用帶有新初始化器的 Group 視圖,允許我們訪問通過 @ViewBuilder 閉包傳遞的內(nèi)容視圖的子視圖。SwiftUI 引入了新的 Subview 和 SubviewsCollection 類型,提供了對真實視圖的代理訪問。GXI28資訊網(wǎng)——每日最新資訊28at.com

新的標(biāo)簽欄體驗

使用新的 Tab 類型,SwiftUI 提供了新的可定制標(biāo)簽欄體驗,帶有流暢過渡到側(cè)邊欄。GXI28資訊網(wǎng)——每日最新資訊28at.com

enum Destination: Hashable {    case home    case search    case settings    case trends}struct RootView: View {    @State private var selection: Destination = .home        var body: some View {        TabView {            Tab("home", systemImage: "home", value: .home) {                HomeView()            }                        Tab("search", systemImage: "search", value: .search) {                SearchView()            }                        TabSection("Other") {                Tab("trends", systemImage: "trends", value: .trends) {                    TrendsView()                }                Tab("settings", systemImage: "settings", value: .settings) {                    SettingsView()                }            }            .tabViewStyle(.sidebarAdaptable)        }    }}

如上例所示,我們使用新的 Tab 類型來定義標(biāo)簽。我們還在 TabSection 實例上使用 tabViewStyle 視圖修飾符,將特定的標(biāo)簽部分分組并移動到側(cè)邊欄。GXI28資訊網(wǎng)——每日最新資訊28at.com

英雄動畫

SwiftUI 引入了 matchedTransitionSource 和 navigationTransition,我們可以在任何 NavigationLink 實例中配對使用。GXI28資訊網(wǎng)——每日最新資訊28at.com

struct HeroAnimationView: View {    @Namespace var hero        var body: some View {        NavigationStack {            NavigationLink {                DetailView()                    .navigationTransition(.zoom(sourceID: "myId", in: hero))            } label: {                ThumbnailView()            }            .matchedTransitionSource(id: "myId", in: hero)        }    }}

這使我們能夠在 NavigationStack 內(nèi)從一個視圖導(dǎo)航到另一個視圖時,使用相同的標(biāo)識符和命名空間創(chuàng)建平滑的過渡。GXI28資訊網(wǎng)——每日最新資訊28at.com

滾動位置

新的 ScrollPosition 類型與 scrollPosition 視圖修飾符配對,允許我們讀取 ScrollView 實例的精確位置。我們還可以使用它編程地滾動到滾動內(nèi)容的特定點。GXI28資訊網(wǎng)——每日最新資訊28at.com

struct ScrollPositionExample: View {    @State private var position: ScrollPosition = .init(point: .zero)        var body: some View {        ScrollView {            ForEach(1..<1000) { item in                Text(item.formatted())            }                        Button("jump to top") {                position = ScrollPosition(point: .zero)            }        }        .scrollPosition($position)    }}

Entry 宏

新的 Entry 宏允許我們快速引入環(huán)境值、聚焦值、容器值等,無需樣板代碼。讓我們看看在 Entry 宏之前我們?nèi)绾味x環(huán)境值。GXI28資訊網(wǎng)——每日最新資訊28at.com

struct ItemsPerPageKey: EnvironmentKey {    static var defaultValue: Int = 10}extension EnvironmentValues {    var itemsPerPage: Int {        get { self[ItemsPerPageKey.self] }        set { self[ItemsPerPageKey.self] = newValue }    }}

現(xiàn)在,我們可以通過使用 Entry 宏來簡化代碼。GXI28資訊網(wǎng)——每日最新資訊28at.com

extension EnvironmentValues {    @Entry var itemsPerPage: Int = 10}

預(yù)覽

新的 Previewable 宏允許我們在預(yù)覽中引入狀態(tài),而無需將其包裝到額外的包裝視圖中。GXI28資訊網(wǎng)——每日最新資訊28at.com

#Preview("toggle") {    @Previewable @State var toggled = true    return Toggle("Loud Noises", isOn: $toggled)}

其他

SwiftUI 框架的下一版本包括許多新 API,如窗口推送、TextField 和 TextEditor 視圖中的文本選擇觀察、搜索焦點監(jiān)控、自定義文本渲染、新的 MeshGradient 類型等等,我無法在一篇文章中涵蓋所有內(nèi)容。GXI28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

在 WWDC 24 上,SwiftUI 再次通過引入更多新功能來提升其成熟度,以趕上 UIKit。今年的主要變化包括 @MainActor 隔離、視圖集合的新重載、新的可定制標(biāo)簽欄體驗、英雄動畫、滾動位置的新功能以及新的 Entry 和 Previewable 宏。這些改進使開發(fā)者能夠創(chuàng)建更靈活和高效的用戶界面。SwiftUI還引入了許多新的API,如窗口推送、文本選擇觀察、搜索焦點監(jiān)控等,使開發(fā)更加便捷和強大。GXI28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-96432-0.htmlSwiftUI 在 WWDC 24 之后的新變化

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: .NET使用CsvHelper快速讀取和寫入CSV文件

下一篇: C#中的異步編程:深入理解async和await

標(biāo)簽:
  • 熱門焦點
  • 對標(biāo)蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據(jù)今天鴻蒙OS 4.0的現(xiàn)場演示顯示,華為的實況窗可以更高效的展現(xiàn)出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍(lán)牙耳機到筆記本電腦,紅米不知不覺之間也已經(jīng)形成了自己頗有競爭力的產(chǎn)品體系,在中端和次旗艦市場上甚至要比小米新機的表現(xiàn)來得更好,正所謂“大丈夫生居
  • 7月安卓手機好評榜:三星S23Ultra好評率第一

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數(shù)據(jù)來源安兔兔評測,收集時間2023年7月1日至7月31日,僅限國內(nèi)市場。第一名:三星Galaxy S23 Ultra好評率:95.71%在即將迎來新
  • 分布式系統(tǒng)中的CAP理論,面試必問,你理解了嘛?

    對于剛剛接觸分布式系統(tǒng)的小伙伴們來說,一提起分布式系統(tǒng),就感覺高大上,深不可測。而且看了很多書和視頻還是一臉懵逼。這篇文章主要使用大白話的方式,帶你理解一下分布式系統(tǒng)
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數(shù)量是否小于或等于一個數(shù)字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 企業(yè)采用CRM系統(tǒng)的11個好處

    客戶關(guān)系管理(CRM)軟件可以為企業(yè)提供很多的好處,從客戶保留到提高生產(chǎn)力。  CRM軟件用于企業(yè)收集客戶互動,以改善客戶體驗和滿意度。  CRM軟件市場規(guī)模如今超過580
  • 花7萬退貨退款無門:誰在縱容淘寶珠寶商家造假?

    來源:極點商業(yè)作者:楊銘在淘寶購買珠寶玉石后,因為保證金不夠賠付,店鋪關(guān)閉,退貨退款難、維權(quán)無門的比比皆是。&ldquo;提供相關(guān)產(chǎn)品鑒定證書,支持全國復(fù)檢,可以30天無理由退換貨。&
  • 華為發(fā)布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發(fā)者大會2023(HDC.Together)大會上,HarmonyOS 4正式發(fā)布。自2019年發(fā)布以來,HarmonyOS一直以用戶為中心,經(jīng)歷四年多的發(fā)展HarmonyOS已
  • 中關(guān)村論壇11月25日開幕,15位諾獎級大咖將發(fā)表演講

    11月18日,記者從2022中關(guān)村論壇新聞發(fā)布會上獲悉,中關(guān)村論壇將于11月25至30日在京舉行。本屆中關(guān)村論壇由科學(xué)技術(shù)部、國家發(fā)展改革委、工業(yè)和信息化部、國務(wù)
Top