在UIWebView上加手势
View Code
1 UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self 2 action:@selector(handleSingleTap:)]; 3 [self.view addGestureRecognizer:singleTap]; 4 singleTap.delegate = self; 5 singleTap.cancelsTouchesInView = NO; 6 [singleTap release];
对手势动作进行处理实现全屏
View Code
- (void)handleSingleTap:(id)sender { if (!isFullScreen) { [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; [self.navigationController setNavigationBarHidden:YES animated:YES]; [self.navigationController setToolbarHidden:YES animated:YES]; isFullScreen = YES; } else { [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; [self.navigationController setNavigationBarHidden:NO animated:YES]; [self.navigationController setToolbarHidden:NO animated:YES]; isFullScreen = NO; } }
关键是需要加上手势的代理
View Code
// called when the recognition of one of gestureRecognizer or otherGestureRecognizer would be blocked by the other // return YES to allow both to recognize simultaneously. the default implementation returns NO (by default no two gestures can be recognized simultaneously) // // note: returning YES is guaranteed to allow simultaneous recognition. returning NO is not guaranteed to prevent simultaneous recognition, as the other gesture's delegate may return YES - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; }
因为UIWebView上的touches,move事件会被其scrollView捕获,此代理允许了两个事件可以同时发生。
当然也可以使用JS实现在UIWebView上的点击事件~