请问能将UIGestureRecognizer附加到多个视图吗?

您能将UIGestureRecognizer附加到多个视图吗?

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:
self action:@selector(tapTapTap:)];[self.view1 addGestureRecognizer:tapGesture];
[self.view2 addGestureRecognizer:tapGesture];[tapGesture release];

在上面的代码中,只点击view2都被认可了。如果我注释掉第三行,然后点击view1都被认可了。如果我是对的,而且您只能使用手势识别器一次,我不确定这是否是一个错误,或者它只是需要更多的文档。


隔江千里
浏览 627回答 3
3回答

撒科打诨

A UIGestureRecognizer将与单一视图一起使用。我同意文件不完整。那,那个UIGestureRecognizer有一个view财产赠予他人:视点将手势识别器附加到的视图。(只读)@properties(非原子,只读)UIView*视图讨论使用addGestureRecognizer:方法向UIView对象附加(或添加)手势识别器。

UYOU

我用下面的方法绕过了它。for (UIButton *aButton in myButtons) {             UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]              initWithTarget:self action:@selector(handleLongPress:)];             longPress.minimumPressDuration=1.0;             [aButton addGestureRecognizer:longPress];             [longPress release];}然后,在handleLongPress方法中,我只设置了一个UIButton,它等于手势识别器的视图,并根据该按钮将所做的事情分支- (void)handleLongPress:(UILongPressGestureRecognizer*)gesture {     if ( gesture.state == UIGestureRecognizerStateEnded ) {         UIButton *whichButton=(UIButton *)[gesture view];         selectedButton=(UIButton *)[gesture view];     ....}

莫回无

对于SWIFT 3,如果有人需要的话:基于以上Bhavik Rathod的答案。 func setGestureRecognizer() -> UIPanGestureRecognizer {         var panRecognizer = UIPanGestureRecognizer()         panRecognizer = UIPanGestureRecognizer (target: self, action: #selector(pan(panGesture:)))         panRecognizer.minimumNumberOfTouches = 1         panRecognizer.maximumNumberOfTouches = 1         return panRecognizer    }         ///set the recognize in multiple views         view1.addGestureRecognizer(setGestureRecognizer())         view2.addGestureRecognizer(setGestureRecognizer())
打开App,查看更多内容
随时随地看视频慕课网APP