如何允许UITapGestureRecognizer检测Web视图上的点击?

时间:2014-08-26 06:21:41

标签: iphone xcode uiwebview gestures

我已经在Xcode中为iPhone制作了网络浏览器,并退出网络浏览器并返回主页面,您点击屏幕三次,除了手势只能在顶部和底部的工具栏上工作屏幕但不在网络视图上。

我该怎么办?

这是我的代码

.h文件

#import <UIKit/UIKit.h>

@interface Internet : UIViewController {


IBOutlet UIWebView *webview;
IBOutlet UIBarButtonItem *forwards;
IBOutlet UIBarButtonItem *backwards;
IBOutlet UITextField *URLTextField;

}

- (IBAction)share:(id)sender;

- (IBAction)returnKeyPressed:(id)sender;
- (IBAction)google:(id)sender;
- (IBAction)reload:(id)sender;
- (IBAction)forwardsButton:(id)sender;
- (IBAction)backwardsButton:(id)sender;



@end

.m文件(仅显示相关代码)

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Do any additional setup after loading the view.
    NSString *homePageString = @"http://www.google.com";
    NSURL *homePage = [NSURL URLWithString:homePageString];
    NSURLRequest *requestHomePage = [NSURLRequest requestWithURL:homePage];
    [webview loadRequest:requestHomePage];
    forwards.enabled = NO;
    backwards.enabled = NO;
    UIAlertView *touchHelp = [[UIAlertView alloc] initWithTitle:@"Alert, Please Read" message:@"To go back to the App Selection Page please anywhere on the top or bottom toolbar three times" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
    [touchHelp show];
    UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
    tapRecognizer.numberOfTapsRequired = 3;
    [self.view addGestureRecognizer:tapRecognizer];
}

- (void)tapDetected:(UITapGestureRecognizer *)tapRecognizer {
    [self dismissViewControllerAnimated:YES completion:nil];
}

1 个答案:

答案 0 :(得分:0)

实施shouldRecognizeSimultaneouslyWithGestureRecognizer委托并返回YES

实施细节:

UIGestureRecognizerDelegate协议添加到.h文件

@interface ViewController : UIViewController <UIGestureRecognizerDelegate>

在.m文件中添加此委托

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