Swipe Actions (Swipe Actions)
«اکشن کشیدن (Swipe Action)» یعنی حرکت انگشت روی ردیف. سپس دکمه های میان بر دیده می شوند. مثلا حذف یا علاقه مندی. این کار تجربه کاربر را سریع تر می کند؛ مثل کشیدن گفتگو در پیام رسان.
حذف با کشیدنِ سمت راست (Trailing)
اینجا روی هر ردیف می کشیم و دکمه حذف می بینیم. سپس همان ردیف را پاک می کنیم.
import SwiftUI
struct SwipeTrailingDemo: View {
@State private var items: [String] = ["A", "B", "C"]
var body: some View {
List {
ForEach(items, id: \.self) { item in
Text(item)
.swipeActions(edge: .trailing) {
Button(role: .destructive) {
items.removeAll { value in
value == item
}
} label: {
Label("Delete", systemImage: "trash")
}
}
}
}
}
}
import SwiftUI
struct ContentView: View {
var body: some View {
SwipeTrailingDemo()
}
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
گام های عملی حذف
- یک آرایه State بساز.
- لیست را با ForEach رندر کن.
- swipeActions را روی .trailing تنظیم کن.
نکته: نقش destructive رنگ قرمز می دهد. بنابراین حذف واضح تر است.
اکشن های سمت چپ (Leading)
اکنون روی شروع ردیف می کشیم. سپس گزینه علاقه مندی و اشتراک گذاری را نشان می دهیم.
import SwiftUI
struct SwipeLeadingDemo: View {
@State private var items: [String] = ["A", "B", "C"]
@State private var favorites: Set<String> = []
var body: some View {
List {
ForEach(items, id: \.self) { item in
HStack {
Text(item)
if favorites.contains(item) {
Image(systemName: "star.fill")
.foregroundStyle(.yellow)
}
}
.swipeActions(edge: .leading) {
Button {
favorites.insert(item)
} label: {
Label("Favorite", systemImage: "star")
}
Button {
// share action
} label: {
Label("Share", systemImage: "square.and.arrow.up")
}
}
}
}
}
}
import SwiftUI
struct ContentView: View {
var body: some View {
SwipeLeadingDemo()
}
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
گام های عملی اکشن های چپ
- یک Set برای علاقه مندی بساز.
- روی .leading اکشن اضافه کن.
- ستاره پر را هنگام علاقه مندی نشان بده.
هشدار: اکشن های زیاد گیج کننده می شوند. بنابراین بیش از دو یا سه دکمه نگذار.
پیوندهای مفید
برای ورودی ها به TextField/Toggle/Picker برو. همچنین ویرایش گروهی را در حالت ویرایش لیست ببین. ساخت فرم کامل هم در Form توضیح داده شده است.
جمع بندی سریع
- .swipeActions دکمه های سریع می آورد.
- .trailing برای حذف رایج است.
- .leading برای موارد اضافه است.
- زیاده روی نکن؛ ساده نگه دار.