0

У меня есть несколько изображений, которые нужно показать в образе просмотра с использованием перекрестной разворачивающей анимации, а на ленте на изображении отображается подробная информация об изображении. Ниже приведен код, который работает, но кратковременное нажатие на изображение не срабатывает, когда оно выполняется с одного изображения на другое.iOS: UIImageView не реагирует на жесты нажатия между анимациями

Код для прикрепления идентификатора распознавания жестов к UIImageview и запуска таймера анимации.

self.imageView.userInteractionEnabled = YES; 
    self.singleTapGestureRecogniser = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showDetails)]; 
    self.singleTapGestureRecogniser.numberOfTapsRequired = 1; 
    self.singleTapGestureRecogniser.cancelsTouchesInView = NO; 

    [self.imageView addGestureRecognizer:self.singleTapGestureRecogniser]; 

    [self startAnimationTimer]; 

- (void)startAnimationTimer 
{ 
    if(!self.timer && ![self.timer isValid]) { 
     self.timer = [NSTimer scheduledTimerWithTimeInterval:5.0 
           target:self 
           selector:@selector(startAnimation) 
           userInfo:nil 
           repeats:YES]; 
     [self.timer fire]; 
    } 
} 

Одиночный кран на просмотр изображений отлично работает, если не выполняется следующий код! Я должен нажать 3-4 раза, чтобы открыть подробности об изображении.

- (void)startAnimation 
{ 
    [UIView transitionWithView:self.imageView duration:2.0 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        animations:^ { 
         currentImageIndex = ++currentImageIndex % self.images.count; 
         [self.imageView setImage:[[self.images objectAtIndex:currentImageIndex] image]]; 
        } completion:^(BOOL finished) { 
        } 
    ]; 
} 

Не могли бы вы предложить мне, как избавиться от этой проблемы, пожалуйста.

+0

отключить userinteraction при анимации и включить после полной анимации. – Ashim

+0

Я не хочу отключать взаимодействие с пользователем. Я хочу распознавать события кранов в любое время, включая анимацию. – applefreak

+0

Можете ли вы показать мне журнал аварий? – Ashim

ответ

4

набор UIViewAnimationOptionAllowUserInteraction в опциях, как так

[UIView transitionWithView:self.imageView duration:2.0 
         options:UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionAllowUserInteraction 
        animations:^ { 
         currentImageIndex = ++currentImageIndex % self.images.count; 
         [self.imageView setImage:[[self.images objectAtIndex:currentImageIndex] image]]; 
        } completion:^(BOOL finished) { 
        } 
    ]; 
+0

Фантастический! Я не знал об этом. Спасибо. :-) – applefreak

+1

@applefreak: Если вы удовлетворены этим ответом, отметьте его как принятый ответ. –

+0

жаль, что я попытался принять его немедленно, но я попросил подождать 5 минут! – applefreak