TapGesture (TapGesture)
اینجا درباره ژست ضربه (TapGesture) حرف می زنیم. ژست یعنی حرکت لمسی. با ضربه، روی رویداد «تاچ» واکنش می دهیم و حالت نما را عوض می کنیم.
ژست ضربه (TapGesture) چیست؟
TapGesture یعنی لمس سریع روی صفحه. با .onTapGesture فوری کد اجرا می کنی. همچنین با TapGesture() می توانی تعداد ضربه را کنترل کنی.
تغییر رنگ با یک ضربه
روی دایره ضربه بزن. مقدار بولی عوض می شود. سپس رنگ تغییر می کند.
import SwiftUI
struct TapDemo: View {
@State private var on = false
var body: some View {
VStack(spacing: 12) {
Circle()
.fill(on ? .green : .gray)
.frame(width: 80, height: 80)
.onTapGesture {
on.toggle()
}
Text(on ? "On" : "Off")
}
.padding()
}
}
struct ContentView: View {
var body: some View {
TapDemo()
}
}
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
نکته: برای حس بهتر، هنگام تغییر رنگ از انیمیشن فنری استفاده کن.
شمارنده با دوبار ضربه
می خواهی فقط با دوبار ضربه کار کند؟ از TapGesture(count: 2) استفاده کن.
import SwiftUI
struct DoubleTapDemo: View {
@State private var count = 0
var body: some View {
VStack(spacing: 12) {
Text("Double taps: \(count)")
RoundedRectangle(cornerRadius: 8)
.fill(.blue.opacity(0.15))
.frame(width: 160, height: 80)
.overlay(Text("Double tap me"))
.gesture(
TapGesture(count: 2)
.onEnded {
count += 1
}
)
}
.padding()
}
}
struct ContentView: View {
var body: some View {
DoubleTapDemo()
}
}
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
سه گام عملی برای ژست ضربه
- هدف لمس را مشخص کن.
.onTapGestureیاTapGesture()را اضافه کن.- بازخورد بصری بده و تست کن.
برای مرور کلی ژست ها به ژست ها در SwiftUI سر بزن. همچنین منحنی های انیمیشن حرکت را طبیعی تر می کنند. اگر دنبال همین صفحه هستی، ژست ضربه را نشانه گذاری کن.
جمع بندی سریع
- Tap برای تغییرات لحظه ای عالی است.
- با count تعداد ضربه را کنترل کن.
- با انیمیشن حس لمس بهتر می شود.
- بازخورد متنی کوچک، کمک کننده است.