我的 UIPanGestureRecognizer 有一点问题。
识别器不报告 UIGestureRecognizerStateEnded
状态如果用户平移到左上角(意味着负 x 和 y
方向)
如果有任何方向,状态将更改为 UIGestureRecognizerStateEnded
当用户抬起手指时为正,但它只是停止报告
如果两个方向均为负或零,则采取行动。
这很糟糕,因为我隐藏了一些覆盖视图,只要用户
拖动一些东西,并且这些视图在失败的情况下不会返回。
当然,我可以设置一个 NSTimer 在一段时间后显示覆盖图
再次自动计时,但我在代码中看不到明显的错误
我想要它干净。
有什么我错过的吗?这是苹果的错误吗?
初始化是这样的:
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
}
The line
[自我添加GestureRecognizer:pan];
我觉得不对。
看起来您正在从 UIView 内部创建手势识别器,而不是UIViewController
。因此,如果视图被解除分配,它和手势识别器都将消失。
更好地创建手势识别器UIViewController
。还有UIViewController
需要对识别器保持强项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)