Imo-ishoralarni birlashtirish


ULASHISH

SwiftUI imo-ishoralar: imo-ishoralarni birlashtirish

Imo-ishoralarni .simultaneousGesture yoki .highPriorityGesture yordamida birlashtiring va o‘zaro ta’sirlarni muvofiqlashtiring.


Sintaksis

Birlashtirish: birgalikda ishlashi uchun .simultaneousGesture() ni, bitta imo-ishoraga ustunlik berish uchun esa .highPriorityGesture() ni qo‘shing.


Bir vaqtda bosish + sudrash

Ikkala imo-ishora ham ishlaydi: bosishlar hisoblagichni oshiradi, sudrash esa rangni o‘zgartiradi.

Misol

import SwiftUI

struct ComposeSimultaneousDemo: View {
  @State private var tapped = 0
  @State private var dragged = false
  var body: some View {
    Rectangle()
      .fill(dragged ? .orange : .purple)
      .frame(height: 120)
      .overlay(Text("taps: \(tapped)"))
      .simultaneousGesture(TapGesture().onEnded { tapped += 1 })
      .gesture(DragGesture().onChanged { _ in dragged = true }.onEnded { _ in dragged = false })
  }
}
import SwiftUI

struct ContentView: View {
  var body: some View { ComposeSimultaneousDemo() }
}
import SwiftUI

@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}

Misolni ishga tushirish »

Yuqoridagi misolda bosish va sudrash imo-ishoralarining ikkalasi ham ishlaydi.



Sudrashning bosishdan ustunligi

Sudrash bosishdan ustun turadi: sudrash davomida bosishlar hisoblagichni oshirmaydi.

Misol

import SwiftUI

struct ComposePriorityDemo: View {
  @State private var tapped = 0
  @State private var dragging = false
  var body: some View {
    Rectangle()
      .fill(dragging ? .orange : .purple)
      .frame(height: 120)
      .overlay(Text("taps: \(tapped)"))
      .highPriorityGesture(DragGesture().onChanged { _ in dragging = true }.onEnded { _ in dragging = false })
      .gesture(TapGesture().onEnded { if !dragging { tapped += 1 } })
  }
}
import SwiftUI

struct ContentView: View {
  var body: some View { ComposePriorityDemo() }
}
import SwiftUI

@main
struct MyApp: App {
  var body: some Scene {
    WindowGroup { ContentView() }
  }
}

Misolni ishga tushirish »

Yuqoridagi misolda sudrash imo-ishorasi bosish imo-ishorasidan ustun turadi.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!