UIScrollview, Переместить вниз цепочку респондента - PullRequest
1 голос
/ 16 февраля 2012

Я постараюсь, чтобы все было просто.

У меня есть UIScrollview с примерно 10 прикрепленными изображениями. В настоящее время у меня есть его, чтобы я мог коснуться изображения и перетащить его вокруг в представлении прокрутки.

Я сделал это путем создания подкласса UIImageview и реализации touchesMoved и т. Д. Я все еще могу хорошо прокручивать вид, но проблема возникает при попытке перетаскивания изображения слишком быстро. Кажется, что программа сначала проверяет, прокручивается ли представление, а затем запускает touchesMoved в классе UIImage.

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

Любая помощь будет великолепна. Спасибо.

Ответы [ 2 ]

1 голос
/ 17 февраля 2012

Самый простой способ сделать это - использовать один палец для перемещения изображения и два пальца для прокрутки изображения.

Если вы используете iOS 5, это очень просто:

self.scrollView.panGestureRecognizer.minimumNumberOfTouches = 2;

Если вы хотите поддерживать более старые версии iOS, вам нужно проделать еще немного работы:

for (UIGestureRecognizer *gesture in self.scrollView.gestureRecognizers){
  if ([gesture isKindOfClass:[UIPanGestureRecognizer class]]){
    ((UIPanGestureRecognizer *)gesture).minimumNumberOfTouches = 2;
  }
}

Если вы хотите использовать жесты одним пальцем для обоих, есть несколько способов сделать это. Вы можете прикрепить UIPanGestureRecognizer к каждому виду изображения. Возможно, вам придется указать собственному представлению прокрутки UIPanGestureRecognizer, чтобы отложить до распознавателей представления изображений, используя сообщение requireGestureRecognizerToFail:.

Другим способом было бы установить делегат UIPanGestureRecognizer представления прокрутки для объекта, который вы создаете и который реализует метод gestureRecognizer:shouldReceiveTouch:. В этом методе вы можете проверить, является ли сенсорный вид одним из ваших изображений. Если это так, верните NO, чтобы предотвратить активацию распознавателя жестов панорамирования в представлении прокрутки.

0 голосов
/ 16 февраля 2012

Ваш вопрос меня немного смущает, но я предполагаю, что у вас есть UIScrollView с 10 UIImageViews внутри, который вы хотите перетащить.

Я бы предложил использовать распознаватель жестов (UIPanGestureRecognizer)прикреплен к каждому UIIImageView для реализации перетаскивания.Я считаю, что распознаватели жестов являются более надежным подходом к такому поведению.

Если вы не знаете, как работать с распознавателями жестов, я могу опубликовать пример короткого кода, чтобы продемонстрировать, как вы можете перетаскивать любой типUIView.Просто спросите в комментарии, и я напишу это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...