gpt4 book ai didi

ios - UILongPressGestureRecognizer 无法识别 .ended 状态

转载 作者:行者123 更新时间:2023-11-28 07:33:00 26 4
gpt4 key购买 nike

如标题所示,我的问题是我的 UILongPressGestureRecognizer 有时不运行 sender.state = .ended 中的代码。 .began 总是运行和工作。我试图注意到模式,但很少见,而且我还没有找到有效的模式或因果关系。我只是将我的 UITapGestureRecognizer UILongPressGestureRecognizer 添加到我的按钮:

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(normalTap(_:)))
tapGesture.numberOfTapsRequired = 1
camButton.addGestureRecognizer(tapGesture)

let longGesture = UILongPressGestureRecognizer(target: self, action: #selector(longTap(_:)))
longGesture.minimumPressDuration = 0.10
camButton.addGestureRecognizer(longGesture)

然后这是我的 longTap 函数:

    @objc func longTap(_ sender: UIGestureRecognizer) {
if sender.state == .ended {
if movieOutput.recordedDuration.seconds == lastRecordDuration || movieOutput.recordedDuration.seconds <= 0.35 {
capturePhoto()
} else {
stopRecording()
}
} else if sender.state == .began {
startCapture()
}
}

我对视频和照片使用长按,对照片仅使用 TapGesture。我正在使用 AVFoundation。

最佳答案

在得到@rmaddy的帮助后,解决方案基本上是实现一个.cancelled状态 Action 。由于某种原因,UILongPressGesture 的连续手势被取消了。在我的代码中,我实现了一个 `if sender.state == .cancelled.

关于ios - UILongPressGestureRecognizer 无法识别 .ended 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54138619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com