功能需求
在大多數內容管理App中,我們需要完成數據項的刪除操作,可是有時候我們還需要按條件動態禁止用戶的刪除操作。
如下圖所示:
在List的任意子View中,若用戶點擊紅色的選項按鈕展開選項面板,則禁止用戶刪除任何子View,只有全部子View中選項面板收起後,才允許用戶進行刪除操作。
這樣做的原因是在選項面板中有一個Slider控件,向左拖動它的把手可能會觸發不該發生的刪除操作,在禁用了刪除操作後,就可以避免發生該問題了。
功能分析
1. SwiftUI如何實現List中子View的刪除操作?
寫過SwiftUI中動態生成列表代碼的朋友都知道,在List中嵌入ForEach語句塊後,就可以添加onDelete修改器,從而完成刪除List中子視圖的功能:
List {
ForEach