iT邦幫忙

2024 iThome 鐵人賽

DAY 6
0
Mobile Development

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

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

  • 分享至 

  • xImage
  •  

Day6 List

來複習一下使用用迴圈ForEach產生出Text元件,例如:

VStack(spacing: 20) {
    ForEach(1...10, id: \.self) { item in
        Text("\(item)")
    }
}

但這樣的Text列表,是無法用手指觸碰滑動的,必須要使用ScrollView來讓版面滑動,例如:

ScrollView {
    VStack(spacing: 20) {
        ForEach(1...10, id: \.self) { item in
            Text("\(item)")
        }
    }
}

ScrollView可以用List來取代,就具有滑動效果,例如:

List {
    ForEach(1...10, id: \.self) { item in
        Text("\(item)")
    }
}
.listStyle(PlainListStyle())

注意到這裡加入了屬性listStyle,然後帶入PlainListStyle(),表示使用一般列表。

最後呈現如圖:

https://ithelp.ithome.com.tw/upload/images/20240806/20162607JHUijh4hGt.png

將PlainListStyle修改成InsetGroupedListStyle,可以轉換成另外一種形式的列表,例如:

List {
    ForEach(1...10, id: \.self) { item in
        Text("\(item)")
    }
}
.listStyle(InsetGroupedListStyle())

呈現如圖:

https://ithelp.ithome.com.tw/upload/images/20240806/20162607rYPBIXUNFw.png

而與List類似的UI元件還有Form與DisclosureGroup。

Form

Form可以製作出類似表單形式的列表,例如:

@State var isOn = false
@State var value = 0
    
var body: some View {
    Form(content: {
        Text("Content")
        Toggle(isOn: $isOn, label: {
            Text("Label")
        })
        Stepper(value: $value, label: {
            Text("Stepper")
        })
    })    
}

在這裡使用Form元件,內部包含了Text、Toggle與Stepper三種UI元件。

呈現如圖:

https://ithelp.ithome.com.tw/upload/images/20240806/20162607UGTlr3lrD1.png

DisclosureGroup

DisclosureGroup可以製作出具有開關的列表,例如:

DisclosureGroup(
    content: {
        Text("Content")
        Text("Content")
        Text("Content")
    },
    label: {
        Text("Label")
    }
)
.padding()

尚未開啟列表時,呈現如圖:

https://ithelp.ithome.com.tw/upload/images/20240806/20162607iawktlaENf.png

開啟列表時,呈現如圖:

https://ithelp.ithome.com.tw/upload/images/20240806/20162607vek5z76Mk7.png

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


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

尚未有邦友留言

立即登入留言