首页 > 解决方案 > 用于在触摸上执行操作的 SwiftUI 方法

问题描述

我正在为 Rectangle 寻找类似tapAction的东西,但不是在点击时执行操作,而是在简单地触摸视图时执行它。

情况是:我在一条水平线上有 3 个矩形。我想在矩形 #1 上着陆,在 #2 上滑动以降落在 #3 上。我希望此滑动触发矩形 #2 上的操作。

⬛ ⬛ ⬛
------->

是否有针对它的 siwftui 解决方案,还是我需要涉及 uikit?

标签: swiftui

解决方案


您需要为此创建手势

private var dragGesture: some Gesture {
    DragGesture(minimumDistance: 10, coordinateSpace: .global)
      .onChanged { print("Changed \($0.location)") }
      .onEnded { print("Changed \($0.location)") }
  }

并添加到视图中:

Text("Text")
    .gesture(dragGesture)

在此处阅读有关可用手势的更多信息

UPD: 要跟踪手势更改,您需要使用@State属性

 @State var position: CGPoint

并添加到您的视图位置修饰符,以便您的视图声明将是下一个:

  Text("Text")
    .position(position)
    .gesture(dragGesture)

UPD 2:您可以在此处阅读有关可用手势以及如何使用它们的信息


推荐阅读