Пейджинг UIScrollView с панорамированием и масштабированием двумя пальцами

Тестовый пример легко воспроизвести: загрузите образец приложения Apple PhotoScroller и попробуйте адаптировать его так, чтобы панорамирование (как вокруг увеличенного изображения, так и между каждым изображением) работало только двумя пальцами.

Настройка panGestureRecognizer для pagingScrollView и imageScrollView на прием минимального и максимального двух касаний кажется хорошим местом для начала, однако это не работает. Он позволяет легко прокручивать изображение двумя пальцами *, однако листание в этом случае не работает.

Я перепробовал так много комбинаций настроек и пользовательских распознавателей жестов, и я немного озадачен. Будет ли использоваться подкласс настраиваемого представления прокрутки, или я могу каким-то образом манипулировать методами делегата представления прокрутки, чтобы заставить его работать?

* РЕДАКТИРОВАТЬ: На самом деле, прокрутка не выполняется нормально в этой ситуации. Вид больше не скользит плавно, как при одном прикосновении ...

ОБНОВЛЕНИЕ: Я все еще борюсь с этим. Я был бы признателен за некоторый вклад от кого-то, кто играл с UIGestureRecognizer s и UIScrollView s.

РЕДАКТИРОВАТЬ :

Настройка класса ImageScrollView для принятия только двух касаний:

- (id)initWithFrame:(CGRect)frame
{
    // ...
    // Template code
    // ...

    [self.panGestureRecognizer setMinimumNumberOfTouches:2];
    [self.panGestureRecognizer setMaximumNumberOfTouches:2];
}

Настройка PhotoViewController pagingScrollView только для принятия два касания:

- (void)loadView
{
    // ...
    // Template code
    // ...

    [pagingScrollView.panGestureRecognizer setMinimumNumberOfTouches:2];
    [pagingScrollView.panGestureRecognizer setMaximumNumberOfTouches:2];
}

Эти изменения вносятся непосредственно в пример приложения PhotoScroller. Я ожидал, что эти простые изменения будут работать при взаимодействии двумя пальцами, однако побочные эффекты странные (как описано выше).

7
задан Stuart 5 April 2015 в 11:43
поделиться