TapGesture


ULASHISH

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() }
  }
}

Misolni ishga tushirish »

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() }
  }
}

Misolni ishga tushirish »

Yuqoridagi misolda hisoblagich .onTapGesture(count: 2) yordamida faqat ikki marta bosilganda oshadi.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!