UIPanGestureRecognizer不会切换到“结束”状态。或者“取消”如果用户在负方向上平移x和y

我对UIPanGestureRecognizer有一点问题。 识别器不报告UIGestureRecognizerStateEnded 如果用户平移到左上角则表示状态(表示负x和y 方向) 如果有任何方向,状态将更改为UIGestureRecognizerStateEnded 当用户抬起手指时它是积极的,但它只是停止报告 如果两个方向都为负或零,则执行操作。 这很糟糕,因为我只要用户隐藏一些叠加视图 拖拽周围的东西,这些观点在失败的情况下不会返回。 当然我可以设置一个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
。因此,如果视图是dealloc,它和手势识别器都将消失。 最好从
UIViewController
创建手势识别器。
UIViewController
还需要保持识别器的强大功能。     

要回复问题请先登录注册