2013-05-07 1 views
1

Я добавляю UIImageView в качестве подзадачи в UIScrollView, после чего устанавливаю изображение.UITapGestureRecognizer для UIImageView на UIScrollView никогда не назывался iOS5

Im пытается использовать UITapGestureRecognizer.

Селектор UITapGestureRecognizer никогда не вызывается в iOS 5 (в iOS 6 он есть!). Пробовал много вариантов. это мой код:

UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(index*(IMAGE_WIDTH+10), 10.0, IMAGE_WIDTH, IMAGE_HEIGHT)]; 
    [imgView setImageWithURL:[NSURL URLWithString:meal.RecommendedImageURL] placeholderImage:[UIImage imageNamed:@""]]; 
    imgView.layer.cornerRadius = 4; 
    [imgView.layer setMasksToBounds:YES]; 
    [imgView setUserInteractionEnabled:YES]; 
    [imgView setMultipleTouchEnabled:YES]; 

    [scrollView addSubview:imgView]; 

    if (IOS_NEWER_OR_EQUAL_TO_5)  
    { 
     UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)]; 
     [imgView addGestureRecognizer:tapGestureRecognizer]; 
     tapGestureRecognizer.numberOfTapsRequired = 1; 
     tapGestureRecognizer.enabled = YES; 
     tapGestureRecognizer.delegate = self; 
     [tapGestureRecognizer setCancelsTouchesInView:NO]; 
    } 

это мой селектор, который вызывается только в iOS5:

- (void) imageTapped: (UITapGestureRecognizer *)recognizer 
{ 
    //Code to handle the gesture 
    UIImageView *tappedImageView = (UIImageView*)recognizer.view; 
    GGFullscreenImageViewController *vc = [[GGFullscreenImageViewController alloc] init]; 
    vc.liftedImageView = tappedImageView; 
    vc.liftedImageView.contentMode = UIViewContentModeScaleAspectFit; 
    if (IOS_NEWER_OR_EQUAL_TO_5) { 
     [self.parentViewController presentViewController:vc animated:YES completion:nil]; 
    } 
    else 
    { 
     [self.parentViewController presentModalViewController:vc animated:YES]; 
    } 


} 

В дополнение к этому, я попытался setCancelsTouchesInView ДА в моем UIScrollView, но он не работает или. Спасибо за помощь!

+0

все еще не называется – user1526725

+0

Есть ли какие-либо другие жесты? – Balu

+0

nope, это единственное, что я добавляю – user1526725

ответ

0
try to add Gesture in Scrollview then check iskind of class image view 
     UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)]; 
    [scrollview addGestureRecognizer:tapGestureRecognizer]; 
    tapGestureRecognizer.numberOfTapsRequired = 1; 
    tapGestureRecognizer.enabled = YES; 
    tapGestureRecognizer.delegate = self; 
    [tapGestureRecognizer setCancelsTouchesInView:NO]; 

     - (BOOL)gestureRecognizer:(UITapGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
     // test if our control subview is on-screen 
      if ([touch.view isKindOfClass:[UIImageView class]]) { 
      // we touched a button, slider, or other UIControl 
      return YES; 
      }return NO; 
     } 
+0

, когда я использую ваш код, сенсорный признак также распознается при прокрутке изображений, я хочу называть его только пользователем, нажатым – user1526725

+0

so..try выше кода but..add gesture в вашем изображении [imgView addGestureRecognizer: tapGestureRecognizer]; nd также должен быть установлен делегат в .h –

+0

по-прежнему ничего ... scorllview - это подвид представления содержимого UITableViewCell, может быть, у него есть что-то с этим? – user1526725

0

Реализовать 3 метода значения по умолчанию & возврата UIGestureRecognizerDelegate:

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer; 

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

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch; 
+0

когда я использую ваш код, сенсорный распознается также при прокрутке изображений, я хочу называть его только пользователем, прослушиваемым – user1526725

0

Ok я решил его очень ЛЕГКО! проблема заключалась в том, что делегат UITapGestureRecognizer задавал себе вопрос. Когда я удалил делегата = сам, он начал работать :) Спасибо за вашу помощь

 Смежные вопросы

  • Нет связанных вопросов^_^