【SwifUI】List とScrollViewについて

・ListとScrollViewの違い 

Listの場合は、画面がスクロールして表示される際に表示範囲分だけインスタンスが生成されますが、 ScrollViewの場合は、表示するまで待機はせず、すぐにインスタンスを生成されます。 ScrollViewを利用する場合は、、ios14からLasyVStack、もしくはLazyHStackと併用すると 画面に表示される分だけ順次ロードしてくれるようです。 コード例を下記に記載します。 

 ・コード例 

・List 

struct GroupMenber: Identifiable {
let id = UUID()
let name: String
}
struct ContentView: View {
var groupMenbers: [GroupMenber] = []
init() {
groupMenbers.append(GroupMenber(name: "Sasaki"))
groupMenbers.append(GroupMenber(name: "Ikeda"))
groupMenbers.append(GroupMenber(name: "Shimamura"))
groupMenbers.append(GroupMenber(name: "Kobayashi"))
}
var body: some View {
Form{
List {
ForEach(groupMenbers) { member in
Text(member.name)
}
}
}
}
}

 ・LazyVStackとScrollView

struct GroupMenber: Identifiable {
let id = UUID()
let name: String
}
struct ContentView: View {
var groupMenbers: [GroupMenber] = []
init() {
groupMenbers.append(GroupMenber(name: "Sasaki"))
groupMenbers.append(GroupMenber(name: "Ikeda"))
groupMenbers.append(GroupMenber(name: "Shimamura"))
groupMenbers.append(GroupMenber(name: "Kobayashi"))
}
var body: some View {
Form{
ScrollView {
LazyVStack(alignment:.leading) {
ForEach(groupMenbers) { member in
Text(member.name)
Divider()
}
}
}
}
}
}

上記2つのコードでのスクリーンショット

このブログの人気の投稿

アプリアイコンの素材探し

【SwiftUI】グラスモーフィズムを試してみました

【SwiftUI】LazyVGridについて