Тестовый пример легко воспроизвести: загрузите образец приложения 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. Я ожидал, что эти простые изменения будут работать при взаимодействии двумя пальцами, однако побочные эффекты странные (как описано выше).