2016-04-19 2 views
1

У меня есть проблемы с моим UIScrollView. Итак, вот и вся ситуация: У меня есть UIScrollView с несколькими маленькими UIView внутри. UIView имеют событие Pan, чтобы переместить их внутри прокрутки. Но когда я увеличиваю свой профиль прокрутки, и один из моих пальцев находится на UIview, которые начинают панорамирование, а мой UIScrollView не масштабируется (и движется UIview).UIScrollview zoom делает подзаголовок UIScrollview Pan

Я попытался установить MaximumNumberOfTouches кастрюли, но это не сработает. Я думаю, это потому, что второе прикосновение выходит за рамки взгляда. У вас есть идеи, как заставить его работать?

Спасибо!

ответ

0

Вы должны реализовать протокол UIGestureRecognizerDelegate в вашем View Controller, так что вы можете использовать метод gestureRecognizer(_:shouldRequireFailureOfGestureRecognizer: и вернуть true при необходимости. Вы можете сформировать ограничительный предикат путем сравнения первого и второго параметров с, соответственно, ваш Pan Жест распознаватель и СВИТОК View в Pinch Жест распознаватель:

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
    return gestureRecognizer == myPanGestureRecognizer && otherGestureRecognizer == scrollView.pinchGestureRecognizer 
} 

Таким образом, последний будет ждать, пока жест Scroll View в распознаватель не откажет перед переходом в состояние .Recognized. Более подробную информацию можно найти в Apple Gesture Recognizer Programming Guide.

Не забудьте установить Pan Gesture свойство делегата распознаватель к self:

myPanGestureRecognizer.delegate = self 
+0

Спасибо за вашу помощь. Я установил делегат для панорамирования, и он возвращает false для увеличения масштаба прокрутки. Но теперь кастрюля никогда не запускается, если мы не защемляемся. Вы не знаете, что я пропустил? –

+0

Mmmm ... Я просто попробовал, и даже без добавления метода протокола делегата выше все кажется готовым к работе. Вы уверены, что правильно настроили «минимальный ZoomScale» и «maximumZoomScale» для прокрутки? – J2b

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