【SwiftUI】Listにスワイプアクション(swipeActions)を実装する方法!

この記事からわかること
- Swift UIでList構造体にswipeActionsを実装する方法
- HorizontalEdgeの種類
- 複数のボタンを設置するには?
- onDeleteを使った削除ボタンの実装
- 背景色の変更方法
index
[open]
\ アプリをリリースしました /
swipeActions(edge:allowsFullSwipe:content:)
公式リファレンス:swipeActions(edge:allowsFullSwipe:content:)
SwiftUIでList
構造体を使用してリスト表示している行にスワイプアクションを追加するにはswipeActions
を使用します。
引数
- edge:スワイプ方向
- allowsFullSwipe:フルスワイプのON/OFF
- content:表示させたいビュー
HorizontalEdge
スワイプする方向は列挙型HorizontalEdge
の値で指定します。左側と右側を選択できます。
スワイプアクションを実装する方法
スワイプアクションを実装するには表示させる行ごとにswipeActions
モディファイアを呼び出します。以下はList表示させるデータをForEachを使って回している場合の例です。
表示させるcontent
にButton
を設置することでタップ時に処理を実行できるようにすることができます。またButton
にrole
属性を付与することでdestructive
なら背景色が赤色になります。
複数のボタンを設置する
スワイプした際のボタンは複数設置することも可能です。その場合はcontent
内にビューをそのまま複数指定すればOKです。
背景色を指定する
スワイプして表示されるボタンの背景色を変更するにはtintモディファイアを使用します。
onDeleteを使ったスワイプ削除ボタン
onDelete
を使用することで簡単にスワイプ時の削除ボタンを実装することもできます。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。