我正在向我的一个视图控制器view
添加一个UIGestureRecognizer
。
我想要的行为是,当这个手势被识别为取消手势视图控制器并将其转发给另一个视图控制器时。(我想转发的视图控制器已经向视图控制器呈现了手势)
现在,当我关闭视图控制器时,按压手势识别器(逻辑上)失败了。
有什么建议吗?谢谢。
发布于 2013-07-18 19:17:56
\EDIT:现在代理获取带有gestureRecognizer的参数。
您可以只实现如下协议:
@protocol ViewControllerWithGestureRecognizerDelegate
- (void)viewControllerGestureRecognizerEvent:(UIPinchGestureRecognizer *)gestureRecognizer;
@end
并将委托属性添加到视图控制器,在该视图控制器中将显示手势识别器。
@property (nonatomic, weak) id<ViewControllerWithGestureRecognizerDelegate> delegate;
然后将手势识别器添加到视图控制器中:
UIPinchGestureRecognizer *gestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRecognizerAction:)];
[self addGestureRecognizer:gestureRecognizer];
调用手势识别器的action方法中的委托方法:
- (void)gestureRecognizerAction:(UIPichGestureRecognizer *)gestureRecognizer
{
[self.delegate viewControllerGestureRecognizerEvent:gestureRecognizer];
}
在第二个视图控制器中实现协议ViewControllerWithGestureRecognizerDelegate (在该协议中,您希望获得有关手势识别器事件的通知),并将手势识别器所在的视图控制器的委托设置为第二个视图控制器。
ViewControllerWithGestureRecognizer.delegate = ViewControllerInWhichYouWantToGetNotifiedAboutGestureRecognizerEvents.
这样,每当手势识别器调用one视图控制器上的方法时,第二个视图控制器就会被告知这一点。
发布于 2013-10-15 12:04:37
您需要包含delaysTouchesEnded
,直到手势被识别:
@property (nonatomic) BOOL delaysTouchesEnded
发布于 2013-12-30 17:55:43
实现这个委托方法不能解决你的问题吗?
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer {
return YES;
}
https://stackoverflow.com/questions/17724902
复制相似问题