1

我最近遇到了一个视图控制器的麻烦,它里面有一个 UIWebView 和一个我想添加到视图控制器的子视图。

这就是 UIWebView 的视图: http: //cl.ly/image/03473l0e3a2L

我的目标是,添加一个可以正常工作的共享菜单:http: //cl.ly/image/3b273t2o3P00

但是现在我遇到了问题,我为社交图标+标签(twitter、facebook、mail)设置了手势识别器——但是这些手势识别器什么也没做。

ShareView 是 UIView 子类,我以这种方式添加手势识别器:

UITapGestureRecognizer *fbTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fbTapped:)];
fbTap.numberOfTapsRequired = 1;
fbTap.numberOfTouchesRequired = 1;
fbTap.delegate = self;
[fbImage addGestureRecognizer:fbTap];
[fbLabel addGestureRecognizer:fbTap];

UITapGestureRecognizer *twTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(twTapped:)];
twTap.numberOfTapsRequired = 1;
twTap.numberOfTouchesRequired = 1;
twTap.delegate = self;
[twImage addGestureRecognizer:twTap];
[twLabel addGestureRecognizer:twTap];

UITapGestureRecognizer *mailTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(mailTapped:)];
mailTap.numberOfTapsRequired = 1;
mailTap.numberOfTouchesRequired = 1;
mailTap.delegate = self;
[mailImage addGestureRecognizer:mailTap];
[mailLabel addGestureRecognizer:mailTap];

我认为 Label 和 UIImageView 名称确实可以解释自己。每个 Label 和 ImageView 都将 userInteractionEnabled 设置为 YES。ShareView 也为 Userinteractions 启用,我确实将 UIGestureRecognizerDelegate 设置为它。

fbTapped、mailTapped 和 twTapped 函数确实会向主视图(其中包含 webview 和 ShareView 的视图)发送通知。

但是现在当我点击标签或图像视图时,什么也没有发生。

我确实在 stackoverflow 上读到 MainView 中的 UIWebView 可能会中断识别?但我不知道如何解决这个问题。

如果你能帮助我或指出我解决这个问题的正确方向,我会非常高兴。

4

1 回答 1

0

我希望这段代码能为您指明正确的方向: 1.添加手势识别器委托:

  @interface myclass <UIGestureRecognizerDelegate>

{

   //Whatever you are doing with gestures

}

2.实现委托方法:

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer      shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 

{ //做你的事

 return YES;

}

检查控件是否到达此委托

于 2013-08-30T15:43:05.343 回答