iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
Mobile Development

從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始系列 第 5

從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始 Day5

  • 分享至 

  • xImage
  •  

Day5 ScrollView

接下來開始討論列表,列表所呈現方式也是應用非常多,不管是在哪一個App,都可以看到列表的排版方式。而要使用列表之前,先來介紹ScrollView。

UI元件ScrollView可以讓內容自動生成可以滑動的視窗,例如:

ScrollView {
    VStack {
        Text("1")
        Text("2")
        Text("3")
    }
}

這裡放了三個Text元件,如果有重複的元件要使用時,可以使用迴圈來生成內容,例如:

ScrollView {
    VStack {
        ForEach(1..<100) { index in
            Text("\(index)")
        }
    }
}

ForEach會回傳一個參數index,表示目前是在那一個索引當中。

另外,ScrollView也可以用在水平排版,例如:

ScrollView(.horizontal) {
    HStack {
        ForEach(1..<100) { index in
            Text("\(index)")
        }
    }
}

但不論是使用VStack或者HStack,兩者都會依照有多少內容,直接一口氣生成多少個元件出來。以上面的例子來說,迴圈有100,就會直接生成100個Text元件出來。

為了不讓畫面因為有太多物件生成而導致延遲,另外提供了LazyHStack與LazyVStack,這兩個元件會根據需求來生成元件,例如將HStack修改成使用LazyHStack:

ScrollView(.horizontal) {
    LazyHStack {
        ForEach(1..<100) { index in
            Text("\(index)")
        }
    }
}

將VStack修改成使用LazyVStack:

ScrollView(.vertical) {
    LazyVStack {
        ForEach(1..<100) { index in
            Text("\(index)")
        }
    }
}

LazyHStack與LazyVStack都是節省記憶體的UI元件,如果有大量的列表資料要呈現時,一定要使用這兩個元件,否則,在滑動時可能會出現滑動的延遲體驗。

從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始 Day5 [完]


上一篇
從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始 Day4
下一篇
從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始 Day6
系列文
從 SwiftUI 到 Apple Vision Pro - SwiftUI 從零開始30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言