【问题标题】:uiwebview inside uipageviewcontroller blocks tap to turn pageuipageviewcontroller 内的 uiwebview 阻止点击翻页
【发布时间】:2013-02-07 15:31:36
【问题描述】:

我在 uipageviewcontroller 中有一个 uiwebview,我希望能够在视图中选择一些文本,所以我将 userInteractionEnabled 设置为 YES,但是当我这样做时,我失去了通过点击来翻页的选项,尽管仍在滑动工作正常。

在 UIWebview 上捕获 UITapReconizer 并将其传递给 UIPageviewController 的最佳方法是什么?

谢谢。

【问题讨论】:

  • 尝试将 webview 作为子视图放入 UIView 中,并将识别器添加到 UIView。

标签: ios objective-c uiwebview uigesturerecognizer uipageviewcontroller


【解决方案1】:

UIPageviewController 有一个gestureRecognizers property

我的猜测是,如果它的手势识别器和您的手势识别器 - 如果您使用的是一个 - 不能同时行动。 您可以通过手势的方法来处理这个问题,请参阅question for handling multiple UITapGestureRecognizers,要求您的 webView 点击识别器失败,以便 pageViewController 的点击成功。

像这样(未测试)

UILongPressGestureRecognizer *yourTapGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];

for(UIGesture *gesture in yourPageController.gestureRecognizers){
   [gesture requireGestureRecognizerToFail:yourTapGesture];
}

[pageControllerTap requireGestureRecognizerToFail:yourTapGesture];

另外,我不明白你为什么需要userInteractionEnabled,你的UIWebView 占用了所有空间吗?您可以将手势附加到 webView 的超级视图,并使用 locationInView: 方法测试 webView-hit。

【讨论】:

  • 只是为了解释一下,我希望能够在 uiwebview 中选择一些文本来共享或记录,但使用长按时出现 uimenu 的默认方式。当 uiwebview.userInteraction = NO; 时不会发生这种情况
【解决方案2】:

我已经整理好了。

我已经在生成 uiwebview 的控制器中添加了一个手势识别器:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
                                             initWithTarget:self action:@selector(handleGesture:)];
    tapRecognizer.numberOfTapsRequired = 1;
    tapRecognizer.delegate = self;
    [webView addGestureRecognizer:tapRecognizer];

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
    return NO;
 }

并在 pageviewController 中添加:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

【讨论】:

    猜你喜欢
    • 2011-12-20
    • 1970-01-01
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多