gpt4 book ai didi

ios - 双击单元格在 iOS9 上不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:55 26 4
gpt4 key购买 nike

我们的项目有自定义 UICollectionViewCell,它使用 UITapGestureRecognizer 处理单击和双击,还有一个 subview 也使用单击 UITapGestureRecognizer。

这是在我们的项目中设置单击/双击的方式:

    _singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
_singleTapGestureRecognizer.numberOfTapsRequired = 1;
[self addGestureRecognizer:_singleTapGestureRecognizer];

_doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
_doubleTapGestureRecognizer.numberOfTapsRequired = 2;
[self addGestureRecognizer:_doubleTapGestureRecognizer]

[_singleTapGestureRecognizer requireGestureRecognizerToFail:_doubleTapGestureRecognizer];

在我们的代码中,我们还通过执行这些操作来取消单击/双击,

    self.singleTapGestureRecognizer.enabled = NO;

self.doubleTapGestureRecognizer.enabled = NO;
self.doubleTapGestureRecognizer.enabled = YES;

self.singleTapGestureRecognizer.enabled = YES;

这些曾经在 iOS9 之前的设备上运行良好,但是最近,我发现在 iOS9 设备上,双击永远不会被触发。每次我尝试双击单元格时,它都会立即记录一次单击,几乎没有延迟。

当我试图查看它时,我发现当 singleTapGestureRecognizer 被注册时,doubleTapGestureRecognizer 仍然处于 Possible not Failed 状态。

single tap: <UITapGestureRecognizer: 0x7f94ead42220; state = Ended; view = <UIView 0x7f94ead3f710>; target= <(action=handleSingleTap:, target=<PVEntityStreamCellForSetOnboarding 0x7f94ead3f1e0>)>; must-fail = {
<UITapGestureRecognizer: 0x7f94ead42810; state = Possible; view = <UIView 0x7f94ead3f710>; target= <(action=handleDoubleTap:, target=<PVEntityStreamCellForSetOnboarding 0x7f94ead3f1e0>)>; numberOfTapsRequired = 2>
}>

我还发现,如果我先点击包含另一个 UITapGestureRecognizer 的 subview ,然后双击就会起作用,一旦我滚动 Collection View ,就不可能双击任何单元格。

有没有人有类似的问题或知道如何解决这个问题?

最佳答案

我有一个类似的问题,在我的例子中,修复是为 singleTapGestureRecognizer 实现一个委托(delegate)方法。我也尝试使用取消来单击/双击,但没有成功。现在,我的代码看起来像这样(它是用 swift 编写的,但很容易阅读):

let singleTapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("handleSingleTap:"))
let doubleTapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("handleDoubleTap:"))

singleTapGestureRecognizer.numberOfTapsRequired = 1
doubleTapGestureRecognizer.numberOfTapsRequired = 2

singleTapGestureRecognizer.delegate = self

singleTapGestureRecognizer.requireGestureRecognizerToFail(doubleTapGestureRecognizer)
view.addGestureRecognizer(singleTapGestureRecognizer)
view.addGestureRecognizer(doubleTapGestureRecognizer)

关于ios - 双击单元格在 iOS9 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32723282/

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