代码之家  ›  专栏  ›  技术社区  ›  TechBee

如何使用UIWebView识别单个点击

  •  0
  • TechBee  · 技术社区  · 15 年前

    我正在使用 UIWebView 在我的文档中显示pdf文件 MainViewController .

    但是UIWebView不允许默认的UITouch事件

    -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
    
    }
    

    如何解决这个问题?

    当做

    4 回复  |  直到 15 年前
        1
  •  0
  •   Pierre Valade    15 年前

    您可以使用TouchShoulDBegin:withEvent:inContentView:UIScrollView中定义的方法 documentation .

    - (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view {
    // DO SOMETHING
    return NO;}
    
        2
  •  0
  •   Felixyz    15 年前

    @皮埃尔

    @implementation UIViewTouch
    
    . . .
    
    - (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view 
    {
        // DO SOMETHING
        return NO;
    }
    

    -(void)viewDidLoad
    {
    
        CGRect frame = CGRectMake(0, 0, 500, 1000);     
        UIViewTouch *viewTouch = [[UIViewTouch alloc]initWithFrame:frame];
    
        NSString *urlAddress = [[NSBundle mainBundle] pathForResource:@"page1" ofType:@"pdf"];  
        NSURL *url = [NSURL fileURLWithPath:urlAddress];
        NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
        [viewTouch loadRequest:requestObj]; [self.view addSubview:viewTouch];
    
    }
    
        3
  •  0
  •   Sayeed S. Alam    14 年前

    创建 UIView 包含整体的子类 UIWebView . 然后事件 hitTest 触动网络视图将被解雇。

    @interface myWebViewContainer : UIView
    ... ...
    @end
    

    然后重写hitTest事件:

    -(UIView*) hitTest:(CGPoint)point withEvent:(UIEvent *)event
    {
        NSLog(@"Hit test %@", [event description]);
        UIView * returnView = [super hitTest:point withEvent:event];
        [delegate userDidTapWebView];// notify the delegate that UIWebView is being touched by some naughty user :P
    
    
        return  returnView;
    }
    
        4
  •  0
  •   TechBee    10 年前