【问题标题】:SwiftUI: How to run action when user releases screen from a longPressGesture?SwiftUI:当用户从 longPressGesture 释放屏幕时如何运行操作?
【发布时间】:2020-07-17 14:42:12
【问题描述】:

我有一个长按手势(持续时间为 0.5 秒)的矩形设置,我希望在长按手势开始、达到 0.5 秒最小持续时间以及用户释放屏幕。当用户释放屏幕时,我无法运行代码。我的代码现在位于 UIView 结构中,但我愿意将它移到单独的类中。

目前,当手势“结束”(达到 0.5 秒)时,我的代码会将矩形变为绿色。我希望它这样做,然后例如在我释放屏幕时将其更改为蓝色。我还尝试按照 Apple 关于添加手势交互性的教程进行操作。 谢谢!

Rectangle()
                        .foregroundColor(self.rectColor)
                        .frame(width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height, alignment: .topTrailing)
                        .offset(y:60)
                        .onTapGesture {
                            if(self.timingImplement.isRunning){
                                self.timingImplement.stop()
                            }
                    }

                    .gesture(LongPressGesture(minimumDuration: 0.5)
                    .onEnded{_ in
                        if(self.timingImplement.isRunning == false){
                            self.timingImplement.reset()
                            self.timingImplement.start()
                            self.timingImplement.genNewScramble()
                            self.rectColor = Color.green

                        }
                        else{
                            self.timingImplement.stop()
                        }

                    })

【问题讨论】:

    标签: ios swift swiftui


    【解决方案1】:

    查看这个 Apple 示例,它就是这样做的(还有一些你可以学习的东西;)

    https://developer.apple.com/documentation/swiftui/gestures/composing_swiftui_gestures

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2012-08-08
      • 2020-03-13
      相关资源
      最近更新 更多