TapGesture
SwiftUI imo-ishoralar: TapGesture
Bosishlarga .onTapGesture yoki TapGesture() yordamida javob bering.
Sintaksis
Bosish ishlovchisi: bosilganda kod bajarish uchun .onTapGesture { ... } yoki TapGesture().onEnded { ... }.
Bosib rangni almashtirish
Doirani bosish boolean qiymatni almashtiradi va uning to‘ldirish rangini yangilaydi.
Misol
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()
}
}
import SwiftUI
struct ContentView: View {
var body: some View { TapDemo() }
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup { ContentView() }
}
}
Yuqoridagi misolda doira .onTapGesture yordamida bosilganda rangini almashtiradi.
Ikki marta bosish hisoblagichi
Hisoblagichni faqat ikki marta bosilganda oshirish uchun TapGesture(count: 2) dan foydalaning.
Misol
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()
}
}
import SwiftUI
struct ContentView: View {
var body: some View { DoubleTapDemo() }
}
import SwiftUI
@main
struct MyApp: App {
var body: some Scene {
WindowGroup { ContentView() }
}
}
Yuqoridagi misolda hisoblagich .onTapGesture(count: 2) yordamida faqat ikki marta bosilganda oshadi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
