【问题标题】:iPhone - How may I catch a tap into a UIWebView or a UIImageViewiPhone - 我如何才能点击 UIWebView 或 UIImageView
【发布时间】:2011-08-11 11:33:09
【问题描述】:

我有一个像这样生成的视图:

oneView = [[UIView alloc] initWithFrame:CGRectMake(x, y , w, h)];
oneView.tag = i;

UITapGestureRecognizer* recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap2:)];
[recognizer setNumberOfTouchesRequired:1];
[oneView addGestureRecognizer:recognizer];
recognizer.delegate = self;
[recognizer release];

- (void)handleSingleTap2:(UITapGestureRecognizer *)recognizer {
    int viewID = recognizer.view.tag;
    NSLog(@"id : %d", viewID);
}

这可行,但如果我将 UIView 分配器替换为 UIWebView 或 UIImageView 分配器,则不再触发触摸事件。

我怎样才能让它工作?

【问题讨论】:

    标签: iphone uiimageview uigesturerecognizer uiweb


    【解决方案1】:

    设置 userInteractionEnabled=YES,如果需要的话,multipleTouchEnabled=YES

    【讨论】:

    • 一个webview的这两个属性默认设置为yes,否则你将无法使用里面的浏览器。
    【解决方案2】:

    关于你关于UIWebView的问题,我建议你看看drawnonward的答案:

    Does UIGestureRecognizer work on a UIWebView?

    对于 UIImageView 部分,请参阅本教程:

    UIImageView-with-zooming-tapping

    我无法在此处粘贴代码,但我认为这将使该区域更清洁、更易于阅读。

    【讨论】:

      【解决方案3】:

      你必须覆盖

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

      委托函数并返回YES;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-18
        • 2011-02-11
        • 2017-04-26
        • 2011-06-08
        • 2011-11-01
        • 1970-01-01
        • 2020-10-04
        • 1970-01-01
        相关资源
        最近更新 更多