ios – 如果用户将x和y置于负方向,UIPanGestureRecognizer不会切换到状态“End”或“Cancel”

UIPanGestureRecognizer有一点问题.
识别器不报告UIGestureRecognizerStateEnded
状态如果用户平移到左上角(意味着负x和y
方向)

UIGestureRecognizerStateEnded状态改变如果有任何方向
当用户抬起手指时,它是积极的,但它只是停止报告
如果两个方向为负或零,则动作.

这是坏的,因为我隐藏一些覆盖视图只要用户
拖曳某些东西,这些意见不会在失败的情况下返回.

当然,我可以设置一个NSTimer来显示一些覆盖
时间自动再次,但我可以看到我的代码没有明显的错误
我想要干净

有没有我错过的东西?是苹果的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.所以如果视图是dealloc,它和手势识别器就会消失.

更好地从UIViewController创建手势识别器.此外,UIViewController需要保持对识别器的强烈要求.

以上是来客网为你收集整理的ios – 如果用户将x和y置于负方向,UIPanGestureRecognizer不会切换到状态“End”或“Cancel”全部内容,希望文章能够帮你解决ios – 如果用户将x和y置于负方向,UIPanGestureRecognizer不会切换到状态“End”或“Cancel”所遇到的程序开发问题。

如果觉得来客网网站内容还不错,欢迎将来客网网站推荐给程序员好友。