swiftui手势识别器开始时如何运行代码

海图人

SwiftUIMagnificationGestureDragGesture具有.onChanged.onEndedAPI,但是无需像UIKit中一样检查手势何时开始。我认为可以这样做的几种方式:

  • .$gestureStarted 在onChanged中进行bool,然后在inChange中将其设置回false .onEnded
  • 轻按即可使用手势序列。

我是否缺少一些首选的方法?要检查似乎是很自然的事情。

他的脾气

有特殊的@GestureState,可以用于此目的。所以,这是可行的方法

struct TestGestureBegin: View {

    enum Progress {
        case inactive
        case started
        case changed
    }
    @GestureState private var gestureState: Progress = .inactive // initial & reset value

    var body: some View {
        VStack {
            Text("Drag over me!")
        }
        .frame(width: 200, height: 200)
        .background(Color.yellow)
        .gesture(DragGesture(minimumDistance: 0)
            .updating($gestureState, body: { (value, state, transaction) in
                switch state {
                    case .inactive:
                        state = .started
                        print("> started")
                    case .started:
                        state = .changed
                        print(">> just changed")
                    case .changed:
                        print(">>> changing")
                }
            })
            .onEnded { value in
                print("x ended")
            }
        )
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在长按手势开始时开始播放动画?

来自分类Dev

当手势已经处于活动状态时,如何启动手势识别器?

来自分类Dev

如何使UIScrollView滚动并具有手势识别器?

来自分类Dev

如何从UITableViewCell的标签中删除手势识别器?

来自分类Dev

SpriteKit手势识别器

来自分类Dev

禁用手势识别器

来自分类Dev

UIImage的手势识别器

来自分类Dev

庞手势识别器停止

来自分类Dev

订购手势识别器

来自分类Dev

如何识别Microsoft Band手势

来自分类Dev

LibGDX 如何识别手势滑动?

来自分类Dev

捕获手势识别器开始状态的快速惯用方法

来自分类Dev

如何从swiftui手势启动View

来自分类Dev

如何在iOS中识别旋转手势的开始和结束?

来自分类Dev

SwiftUI轻击手势识别器只会在状态改变后调用一次

来自分类Dev

我可以将手势识别器的代码放在视图的子类中吗?

来自分类Dev

ios8手势识别器无法在WKWebView上快速运行

来自分类Dev

为什么“滑动手势识别器”只能运行一次?

来自分类Dev

自定义手势识别器无法正常运行

来自分类Dev

使用手势识别器时,表格视图不滚动

来自分类Dev

iOS`UIView`的Alpha为0时是否停止响应手势识别器?

来自分类Dev

按下点击手势识别器时,AVAudioPlayer 不播放声音

来自分类Dev

如何使用类方法作为选择器添加手势识别器?

来自分类Dev

如何从自定义手势侦听器开始动画?

来自分类Dev

如何在uibezierpath绘制的形状中添加手势识别器

来自分类Dev

如何在Swift中从UIView删除所有手势识别器

来自分类Dev

如何使用Swift为多个子视图实现轻击手势识别器

来自分类Dev

如何在iPhone的手势识别器中获取原始的附加视图?

来自分类Dev

如何为自定义手势识别器实现VelocityInView :?

Related 相关文章

  1. 1

    如何在长按手势开始时开始播放动画?

  2. 2

    当手势已经处于活动状态时,如何启动手势识别器?

  3. 3

    如何使UIScrollView滚动并具有手势识别器?

  4. 4

    如何从UITableViewCell的标签中删除手势识别器?

  5. 5

    SpriteKit手势识别器

  6. 6

    禁用手势识别器

  7. 7

    UIImage的手势识别器

  8. 8

    庞手势识别器停止

  9. 9

    订购手势识别器

  10. 10

    如何识别Microsoft Band手势

  11. 11

    LibGDX 如何识别手势滑动?

  12. 12

    捕获手势识别器开始状态的快速惯用方法

  13. 13

    如何从swiftui手势启动View

  14. 14

    如何在iOS中识别旋转手势的开始和结束?

  15. 15

    SwiftUI轻击手势识别器只会在状态改变后调用一次

  16. 16

    我可以将手势识别器的代码放在视图的子类中吗?

  17. 17

    ios8手势识别器无法在WKWebView上快速运行

  18. 18

    为什么“滑动手势识别器”只能运行一次?

  19. 19

    自定义手势识别器无法正常运行

  20. 20

    使用手势识别器时,表格视图不滚动

  21. 21

    iOS`UIView`的Alpha为0时是否停止响应手势识别器?

  22. 22

    按下点击手势识别器时,AVAudioPlayer 不播放声音

  23. 23

    如何使用类方法作为选择器添加手势识别器?

  24. 24

    如何从自定义手势侦听器开始动画?

  25. 25

    如何在uibezierpath绘制的形状中添加手势识别器

  26. 26

    如何在Swift中从UIView删除所有手势识别器

  27. 27

    如何使用Swift为多个子视图实现轻击手势识别器

  28. 28

    如何在iPhone的手势识别器中获取原始的附加视图?

  29. 29

    如何为自定义手势识别器实现VelocityInView :?

热门标签

归档