这里有几个关于如何获得单个UIGestureRecognizer识别的多个视图的示例。我有这个代码,并且我已经尝试了不同的方法来使它工作但不幸的是似乎没有用。如果能够对此有所了解,我将不胜感激。
如果我创建了几个(IBAction)函数,我能够让它工作的唯一方法,但我有多达100个需要移动的视图,因此需要有100个不同的函数。我在这里读了一个例子,其中tag可以用来做那个,但我试过了,不幸的是它不起作用。如果有帮助,我使用XCode 4.6.1。这是下面的代码。
-(IBAction)handlePan:(UIPanGestureRecognizer *)recognizer{
UIView *player=recognizer.view;
int tag=player.tag;
[player addGestureRecognizer:recognizer];
if (tag!=0) {
CGPoint translation =[recognizer translationInView:self.view];
player.center=CGPointMake(player.center.x+translation.x, player.center.y+translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:player.superview];
}
}
答案 0 :(得分:1)
在我看来,您正在为已经拥有它的视图添加相同的手势识别器。您可以使用标记循环将UIPanGestureRecognizer添加到您的所有视图中,然后在方法handlePan:(UIPanGestureRecognizer *)识别器中检查当前正在平移哪个视图并从那里继续。