gpt4 book ai didi

ios - 如果用户在负方向平移 x 和 y,UIPanGestureRecognizer 不会切换到状态 "End"或 "Cancel"

转载 作者:技术小花猫 更新时间:2023-10-29 10:28:22 26 4
gpt4 key购买 nike

我在使用 UIPanGestureRecognizer 时遇到了一点问题。识别器不报告 UIGestureRecognizerStateEnded状态如果用户平移到左上角(意味着负 x 和 y方向)

如果有任何方向,状态变为 UIGestureRecognizerStateEnded当用户抬起手指时为正,但它只是停止报告两个方向均为负或零时的 Action 。

这很糟糕,因为我隐藏了一些覆盖 View ,只要用户拖拽一些东西,这些 View 在失败的情况下不会返回。

当然我可以设置一个 NSTimer 来在一些之后显示叠加层再次自动计时,但我在我的代码中看不到明显的错误,并且我要干净。

我错过了什么吗?是 Apple Bug 吗?

初始化是这样的:

pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panRecognized:)];
[self addGestureRecognizer:pan];
[pan release];

处理函数如下所示:

- (void)panRecognized:(UIPanGestureRecognizer *)gestureRecognizer {
switch ([gestureRecognizer state]) {
case UIGestureRecognizerStateBegan:
// fade some overlaying views out
break;
case UIGestureRecognizerStateEnded:
case UIGestureRecognizerStateCancelled:
case UIGestureRecognizerStateFailed:
// fade in the overlays
break;
default:
break;
}

// handle panning
}

最佳答案

线

[self addGestureRecognizer:pan];

我觉得不对。

您似乎是从 UIView 而不是 UIViewController 内部创建手势识别器。因此,如果 View 被解除分配,它和手势识别器都会消失。

最好从 UIViewController 创建手势识别器。此外,UIViewController 需要保持对识别器的支持。

关于ios - 如果用户在负方向平移 x 和 y,UIPanGestureRecognizer 不会切换到状态 "End"或 "Cancel",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4461621/

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