распознаватель жестов на веб-странице в приложении для iphone - PullRequest
2 голосов
/ 14 сентября 2011

Я создал веб-просмотр для отображения 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 Ответ

1 голос
/ 14 сентября 2011

Вы пробовали установить:

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

чтобы вернуть YES? Кроме того, убедитесь, что для делегата жеста касания установлено значение self, чтобы сообщение было принято правильно. Я только что проверил это в новом проекте, и он работает.

EDIT

Не совсем уверен, для чего ваша анимация begin & commit - метод setNavigationBarHidden:animated: анимирует сам себя. Кроме того, использование этих определений анимации не рекомендуется в iOS 4 и более поздних версиях - обратите внимание на использование блочной анимации вместо UIView.

Для вашего контроллера навигации вы в значительной степени там - реализуйте что-то вроде этого:

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