在iphone应用程序的web视图上的手势识别器

时间:2011-09-14 12:39:17

标签: iphone objective-c uiwebview uigesturerecognizer

我创建了一个webview来显示pdf,现在单击时使用手势识别器我必须调用某种方法,但单击无法识别

我已使用此代码

UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 450,450)];
UITapGestureRecognizer *DoubleFingerDTap = [[UITapGestureRecognizer alloc]
                                           initWithTarget:self action:@selector(screenTappedtwice:)];

DoubleFingerDTap.numberOfTapsRequired = 1;
[webView addGestureRecognizer:DoubleFingerDTap];

[DoubleFingerDTap release];

方法叫

- (void)screenTappedtwice:(UIGestureRecognizer *)sender {

    CGPoint tapPoint = [sender locationInView:sender.view.superview];


      [UIView beginAnimations:nil context:NULL];

    sender.view.center = tapPoint;

//Check the current state of the navigation bar...
    //BOOL navBarState = [self.navigationController isNavigationBarHidden];
//  Set the navigationBarHidden to the opposite of the current state.
//  [self.navigationController setNavigationBarHidden:TRUE animated:YES];


    [self.navigationController setNavigationBarHidden:YES animated:YES];

    [UIView commitAnimations];


}

1 个答案:

答案 0 :(得分:1)

您是否尝试过设置:

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

返回YES?此外,请确保将您的点击手势的委托设置为自己,以便正确接收消息。我刚刚在一个新项目中对此进行了测试,它确实有效。

修改

不太确定你的动画开头是什么? commit是for - 方法setNavigationBarHidden:animated:使自己动画化。此外,在iOS 4及更高版本中不鼓励使用这些动画定义 - 请考虑在UIView上使用基于块的动画。

对于你的导航控制器,你几乎就是 - 实现这样的东西:

- (void)screenTappedTwice:(UITapGestureRecognizer *)sender
{
    BOOL shouldHideNavBar = [self.navigationController isNavigationBarHidden] ? NO : YES;
    [self.navigationController setNavigationBarHidden:shouldHideNavBar animated:YES];
}