[英]Enabling UIPanGestureRecognizer on UILongPressGestureRecognizer
[英]how to fail UILongPressGestureRecognizer for UIPanGestureRecognizer?
在我看来,我添加了长按手势和平移手势,如下所示
UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(fitToView:)];
[longPressRecognizer setDelegate:self];
longPressRecognizer.allowableMovement = 5.0f;
longPressRecognizer.minimumPressDuration = 2.0;
[self addGestureRecognizer:longPressRecognizer];
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(move:)];
[panRecognizer setMinimumNumberOfTouches:1];
[panRecognizer setMaximumNumberOfTouches:1];
panRecognizer.delegate = self;
[self addGestureRecognizer:panRecognizer];
[panRecognizer requireGestureRecognizerToFail:longPressRecognizer];
其手势处理程序如下:
-(void)move:(UIPanGestureRecognizer*)recognizer {
CGPoint translatedPoint = [recognizer translationInView:self.imgView ];
if ([recognizer state] == UIGestureRecognizerStateBegan) {
_firstX = [self.imgView center].x;
_firstY = [self.imgView center].y;
}
CGAffineTransform newTransform = CGAffineTransformTranslate(CGAffineTransformIdentity, translatedPoint.x , translatedPoint.y );
self.imgView.transform = newTransform;
}
-(void)fitToView:(UILongPressGestureRecognizer*)recognizer {
if ([recognizer state] == UIGestureRecognizerStateBegan) {
self.imgView.transform = CGAffineTransformIdentity;
}
}
长按旨在恢复图像。 但是当我移动图像时,长按手势代表也会调用并恢复我所做的所有更改。 我用了[panRecognizer requireGestureRecognizerToFail:longPressRecognizer];
使长按识别器失败。 但这并没有发生。 我还尝试了委托方法gestureRecognizer:应该同时使用GestureRecognizer:来识别 。 但这没用
尝试实现委托功能
gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
然后返回是
您是否看到了这个相关答案, 将UILongPressGestureRecognizer与来自@annie 的UIPanGestureRecognizer组合在一起 ?
您只能使用UILongPressGestureRecognizer
进行此UILongPressGestureRecognizer
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.