gpt4 book ai didi

ios - 子类化 UIGestureRecognizer 和 UILongPressGestureRecognizer

转载 作者:行者123 更新时间:2023-11-28 06:08:54 25 4
gpt4 key购买 nike

我的情况是,我有一个 UIView,我已将子类 UIGestureRecognizer 添加到其中。我正在使用以下代码;

class ButtonGestureRecognizer: UIGestureRecognizer {

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent) {
//
state = .began
}

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent) {
//
state = .ended
}
}

这使我能够捕获触摸“向下”和触摸“向上”事件,我用它来在按下时将 UIView 缩放得更大,并在按下时将其恢复到正常大小发布。

我还需要向同一个 View 添加一个 UILongPressGestureRecognizer,其中它在按住时也会放大,在松开时恢复到正常大小,但会执行不同的操作。

但是,子类化的手势识别器似乎阻止了 UILongPressGestureRecognizer 的工作。到目前为止,我找到的唯一解决方案是放弃我的子类手势识别器并使用 UITapGestureRecognizer(将所需的最少点击设置为一个)和 UILongPressGestureRecognizer,但随后我放弃了正确检测点击/按下开始和结束状态的能力。

有什么办法解决这个问题吗?谢谢!

最佳答案

有一个名为 UIGestureRecognizerDelegate 的协议(protocol),它有这个方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

如果您遵守该协议(protocol)并将您的对象设置为识别器的委托(delegate),您可以在该方法上返回 true,您的手势识别器将协同工作。

关于ios - 子类化 UIGestureRecognizer 和 UILongPressGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47290512/

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