我使用Pan Gesture
移动了一些对象。现在我希望对象永久停止:
我试图在使用removeGestureRecogniser
重叠两个对象时停止它,但它不起作用。
- (IBAction)cowimagemove:(UIPanGestureRecognizer *)recognizer {
if (cowimage.center.x==stayimage.center.x) {
[self removeGestureRecogniser];
}
else {
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}
}
答案 0 :(得分:1)
尝试捕获UIGestureRecognizer委托中的重叠。
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
if ([self checkForOverlap:gestureRecognizer]) {
return NO;
}
return YES;
}
在checkForOverlap
方法中,您使用手势识别器对象来测试相关点等,如果是这种情况则返回YES。
(当然上面的更短版本将是
return ![self checkForOverlap:gestureRecognizer];
)
答案 1 :(得分:0)
由于你没有包含任何设置代码,这个答案有点像在黑暗中探讨,但第一件事就是removeGestureRecognizer是一个需要参数的方法,即你想要的手势识别器去除。所以第3行显示为
[self removeGestureRecognizer: recognizer];
总是在所有委托方法中传递这些引用的一个原因正是 - 你知道你工作的对象是什么......
在我使用addGestureRecognizer / removeGestureRecognizer对的所有情况下,它们都能很顺利地运行,所以我们希望它们也适用于您的情况!
问候,nobi