我有一个UIView,其中有一个UILongPressGestureRecognizer,如下所示:
movementGestureRecognizer = [[UILongPressGestureRecognizer alloc] init];
[movementGestureRecognizer setDelegate:self];
[movementGestureRecognizer setMinimumPressDuration:0.0f];
[self addGestureRecognizer:movementGestureRecognizer];你能看到它的名字吗,它已经习惯了,只要我长时间按下UIView,我就能移动它。
问题是,我也希望能够添加一些其他类型的手势,例如:
optionsGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(options:)];
[optionsGestureRecognizer setNumberOfTapsRequired:2];
[self addGestureRecognizer:optionsGestureRecognizer];问题是,我无法调用options:,因为movementGestureRecognizer正在“吸吮”所有的手势。是否有防止、取消或延迟movementGestureRecognizer的方法?
编辑1.0
如果我执行以下操作,我可以从options:调用TapGestureRecognizer:
[movementGestureRecognizer setMinimumPressDuration:0.1f];然而,就可用性而言,这并不是一个完美的解决方案.
发布于 2012-10-17 13:35:56
通过执行以下操作,我能够提供一个解决方案:
1)在我的UIView上实现“状态机”,方法是根据UIGestureRecognizers的状态禁用并启用它。
2)使用UIPanGestureRecognizer来移动UIView's。
( 3) this问题。
发布于 2012-10-15 13:25:12
水龙头和长压力机的区别在于,在从触控表面释放手指之前,你要按住手指多长时间。因此,您希望有一个最小的新闻持续时间大于0。
此外,您还可以执行以下操作:
movementGestureRecognizer.delaysTouchesBegan = NO;
movementGestureRecognizer.delaysTouchesEnded = NO;这将使系统能够识别水龙头和长压力机。
https://stackoverflow.com/questions/12894763
复制相似问题