我们可以在多个视图中添加单一的姿态,使其工作? [重复](Can we add single g

2019-09-17 00:34发布

这个问题已经在这里有一个答案:

  • 你可以附加一个UIGestureRecognizer多个视图? 10个回答

我工作的潘手势的样本。 我很希望知道,我可以在两个视图中添加单一的姿态?

我的代码如下:

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(invokePanGesture:)];
[panGesture setMinimumNumberOfTouches:1];
[panGesture setMaximumNumberOfTouches:2];

[btnGreen addGestureRecognizer:panGesture];
[btnYellow addGestureRecognizer:panGesture];

我的处理方法如下:

- (void)invokePanGesture:(UIPanGestureRecognizer*)recognizer {
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];
}

现在的问题是手势识别正在考虑我的情况下,只有最后一个视图btnYellow作为其视图。 如果我创建两个单独的GestureRecognizer对象它的工作原理。 所以,请清除我说:

  1. 是否有可能在多个视图或者不是单一的姿态?

  2. 如果是的话怎么样?

  3. 如果现在为什么?

提前致谢

Answer 1:

我不认为这是可能的。

请看看https://stackoverflow.com/a/5567684/470964 。

此外https://stackoverflow.com/a/7883902/470964 :也许它也是你的问题的解决方案。 我认为答案是,GestureRecognizer只有一个视图属性,将被设置。



Answer 2:

从文档的UIGestureRecognizer

手势识别上的触摸命中测试,以特定视图和所有视图的子视图的操作。 因此,它必须与视图相关联。 为了使该协会必须调用UIView的方法addGestureRecognizer :. 手势识别不参与该视图的响应链。

因此,在总结一GestureRecognizer可以在多个视图操作的唯一方法是,如果识别器上的其他意见上海华工作。



Answer 3:

你不能只写你invokePanGesture方法做这两种观点同样的事情在同一时间?



文章来源: Can we add single gesture on multiple views and make it working? [duplicate]