Как выполнять панорамирование по набору изображений с интервалами

#ipad #uiimageview #nstimer

#iPad #uiimageview #nstimer

Вопрос:

Я хочу показать UIPanGestureRecognizer (эффект панорамирования) в UIImageView без события касания.

Спасибо

Комментарии:

1. как вы ожидаете обработать жест без события касания? Жест — это событие касания.

2. можете ли вы подсказать мне какую-нибудь идею для эффекта панорамирования?

3. Почему вы хотите избежать события касания? Дайте нам немного больше для работы здесь.

4. моя проблема заключается в эффекте панорамирования. У меня есть 4 изображения, и я хочу менять изображение каждые 10 секунд. между 10 секундами изображение показывает эффект панорамирования. Итак, я хочу показать UIPanGestureRecognizer без события касания.

5. Итак, вы хотите, чтобы изображение перемещалось влево, а новое изображение появлялось на экране справа?

Ответ №1:

Из того, что я почерпнул из ваших комментариев:

Что вам нужно, так это объединить несколько UIImageViews в UIScrollView. Затем вам нужно будет включить прокрутку в ScrollView, но отключить взаимодействие с пользователем. Вы можете сделать это с помощью XIB.

Затем вам нужно будет настроить NSTimer и в функции обработчика добавить анимацию, как показано ниже:

 NSTimer *timer;

timer = [NSTimer scheduledTimerWithTimeInterval: 10.00
             target: self
             selector: @selector(handleTimer:)
             userInfo: nil
             repeats: YES];

- (void) handleTimer: (NSTimer *) timer
{
    [UIView animateWithDuration:0.5
        animations:^{ 
            ImageView1.x =ImageView1.width;
            ImageView2.x =ImageView2.width;
            ImageView3.x =ImageView3.width;
        }];
}
  

К вашему сведению, UIPanGestureRecognizer фактически распознает касание и движение влево / вправо. Вы можете перемещать изображение, вид или что угодно, перемещая его координаты в блоке анимации, как указано выше; но это не имеет ничего общего с UIPanGestureRecognizer, поскольку он управляет фактическим событием касания.