亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SwiftUI?List在MacOS中的性能優(yōu)化示例

 更新時間:2022年09月03日 14:22:38   作者:liaoWorkin  
這篇文章主要為大家介紹了SwiftUI?List在MacOS中的性能優(yōu)化示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

List在iOS中有懶加載的特性,但是在MacOS中會一次性加載完List中的所有的數(shù)據(jù)。并沒有懶加載的特性。

所以在MacOS的List中當數(shù)據(jù)量巨大時,會存在巨大的性能瓶頸。

  var body: some View {
    List(){
        ForEach(currentSectionModel) { (sectionModel) in
            Section(header:
                        HStack {
                Text("section")+Text(sectionModel.word).font(.title).foregroundColor(.red)
                        }.frame(height:35)
            ) {
              ForEach(currentSectionModel, id: \.self) { (wordModel) in
                  Text(wordModel.word)
                }
            }
        }
    }

當數(shù)據(jù)量達到15000條時, 在16寸i9的mbp上加載時長需要4.53s

這個時候建議使用 ScrollView + LazyVStack(macOS 11, iOS14支持)

ScrollView {
    LazyVStack {
    }
}

來獲取巨大性能提升

  var body: some View {
    ScrollView {
        LazyVStack {
            ForEach(currentSectionModel) { (sectionModel) in
                Section(header:
                            HStack {
                    Text("section")+Text(sectionModel.word).font(.title).foregroundColor(.red)
                            }.frame(height:35)
                ) {
                  ForEach(currentSectionModel, id: \.self) { (wordModel) in
                      Text(wordModel.word)
                    }
                }
            }
        }
    }.onAppear {
        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            currentSectionModel = storeData
        }
    }
}

實測加載15000 條數(shù)據(jù)加載時長為31ms 加載時長為原來的 0.0068倍。 因為只加載了顯示的部分,所以性能提升巨大。

以上就是SwiftUI List在MacOS中的性能優(yōu)化示例的詳細內(nèi)容,更多關(guān)于SwiftUI List性能優(yōu)化MacOS的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在?Swift?中編寫Git?Hooks腳本的方法

    在?Swift?中編寫Git?Hooks腳本的方法

    在本例中,我使用了?commit-msg?鉤子,它能夠在當前提交信息生效前修改此信息,鉤子由一個參數(shù)調(diào)用,該參數(shù)是指向包含用戶輸入的提交消息的文件的路徑,這意味著,為了改變提交消息,我們只需要從文件中讀取、修改其內(nèi)容,然后寫回調(diào)用掛鉤的文件
    2022-06-06
  • 詳解Swift編程中的方法與屬性的概念

    詳解Swift編程中的方法與屬性的概念

    這篇文章主要介紹了Swift編程中的方法與屬性的概念,是Swift入門學習中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • 詳解swift中xcworkspace多項目管理

    詳解swift中xcworkspace多項目管理

    給大家詳細講解了IOS開發(fā)中swift語言xcworkspace多項目管理的方法和介紹,一起參考一下。
    2017-11-11
  • swift 可選型的使用詳解

    swift 可選型的使用詳解

    可選性是Swift提供的一個特殊類型,它為我們編寫程序提供便利的條件。這篇文章主要介紹了swift 可選型的使用詳解,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • Swift用final關(guān)鍵字來防止重寫

    Swift用final關(guān)鍵字來防止重寫

    final關(guān)鍵字在大多數(shù)的編程語言中都存在,表示不允許對其修飾的內(nèi)容進行繼承或者重新操作。下面通過實例代碼給大家介紹swift用final關(guān)鍵字來防止重寫
    2016-12-12
  • Swift學習筆記之構(gòu)造器重載

    Swift學習筆記之構(gòu)造器重載

    Swift 將為所有屬性已提供默認值的且自身沒有定義任何構(gòu)造器的結(jié)構(gòu)體或基類,提供一個默認的構(gòu)造器。這個默認構(gòu)造器將簡單的創(chuàng)建一個所有屬性值都設(shè)置為默認值的實例。
    2014-11-11
  • swift語言AutoreleasePool原理及使用場景

    swift語言AutoreleasePool原理及使用場景

    這篇文章主要為大家介紹了swift語言AutoreleasePool原理及使用場景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • 詳解Swift 結(jié)構(gòu)體

    詳解Swift 結(jié)構(gòu)體

    這篇文章主要介紹了Swift 結(jié)構(gòu)體的相關(guān)資料,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-09-09
  • Swift中優(yōu)雅處理閉包導致的循環(huán)引用詳解

    Swift中優(yōu)雅處理閉包導致的循環(huán)引用詳解

    這篇文章主要給大家介紹了關(guān)于Swift中優(yōu)雅的處理閉包導致的循環(huán)引用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Swift具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • Swift中通過疊加UILabel實現(xiàn)混合進度條的方法

    Swift中通過疊加UILabel實現(xiàn)混合進度條的方法

    這篇文章主要介紹了Swift中通過疊加UILabel實現(xiàn)混合進度條的方法的相關(guān)資料,需要的朋友可以參考下
    2016-08-08

最新評論