iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
Mobile Development

Flutter Developer Learning SwiftUI系列 第 20

Flutter Developer Learning SwiftUI. @State var lesson20 = "列表(中)"

  • 分享至 

  • xImage
  •  

Today Preview

Yes

今天是列表二部曲
講講List的一些特色應用
我個人的認知
等等要提到的側滑/編輯/多選,才會是SwiftUI中使用List的主要理由
因為如果是單純畫面的呈現
使用ScrollView會比較有彈性(除非客人或老闆能接受你畫面細節改不動)

1. 側滑


使用.swipeActions()
可以選擇左邊或右邊
allowsFullSwipe的意思是可否拉到中間就執行動作
因為是actions,所以可以給它多個Button
使用.tint()可以改變底色
然後發現一點很奇怪
可能是因為有底色的關係
所有的system image都變成填滿樣式
最後要注意
如果同一邊的.swipeActions()疊加了多次

例如
.swipeActions(edge: .leading) {
    ButtonA()
}
.swipeActions(edge: .leading) {
    ButtonB()
}

雖然顯示上會正常
但點擊的效果會被吃掉

2. 編輯

在SwiftUI裡有許多專為特定場景設計的Button
EditButton就是其中之一
用來切換是否為編輯狀態
搭配List服用即可達到排序/刪除之功效

接著,List的內含必須是ForEach

才能使用關鍵modifier .onDelete() 跟 .onMove()
在closure裡面分別提供.remove() 跟 .move()
就打完收工~

3. 多選

更簡單了...
只要在List init時提供selection參數
SwiftUI會自動根據你提供的Buinding是否為Set
然後接下來的事幫你處理到好
所以我說如果有用到今天提到的這些功能
用List是很爽的事
根本不用寫幾行code,效果漂漂亮亮亮亮
這在以前UIKit是很難想像的

Tomorrow Preview

Yes


跨界學習系列文章

Android版:iOS Developer Learning Android. Lesson 16 - RecyclerView (這玩意可是跟UITableView差滿多的喔...)
Flutter版:
iOS Developer Learning Flutter. Lesson10 建立列表
iOS Developer Learning Flutter. Lesson11 又是列表(置頂與刷新)
iOS Developer Learning Flutter. Lesson12 還是~列表(輸入與折疊)
iOS Developer Learning Flutter. Lesson13 裁判~可以讓人列完又列這樣的嗎? (多選與側滑)


https://github.com/mark33699/FDLS


上一篇
Flutter Developer Learning SwiftUI. @State var lesson19 = "列表(上)"
下一篇
Flutter Developer Learning SwiftUI. @State var lesson21 = "列表(下)"
系列文
Flutter Developer Learning SwiftUI30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言