#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, поскольку он управляет фактическим событием касания.