El caso de prueba se reproduce fácilmente: descargue la aplicación de muestra PhotoScroller de Apple e intente adaptarla para que el paneo (tanto alrededor de una imagen ampliada como entre cada imagen) solo funcione con dos dedos .Paginación UIScrollView con dos dedos y zoom
Ajuste del panGestureRecognizer
tanto para el pagingScrollView
y la imageScrollView
para aceptar sólo un mínimo & máximo de 2 toques que parece ser un buen punto de partida, sin embargo, no funciona. Te permite desplazarte por una imagen con dos dedos simplemente bien *, sin embargo, la búsqueda no funciona.
He intentado tantas combinaciones de configuraciones y reconocedores de gestos personalizados, y estoy un poco perplejo. ¿Va a ser de alguna utilidad una subclase de vista de desplazamiento personalizada, o puedo manipular de algún modo los métodos de delegado de la vista de desplazamiento para que funcione?
* EDITAR: En realidad, no se mueve bien en esta situación. La vista ya no se desliza suavemente como con un solo toque ...
ACTUALIZACIÓN: Todavía estoy luchando con este. Agradecería la contribución de alguien que haya jugado con UIGestureRecognizer
sy UIScrollView
s.
EDITAR:
Configuración de la clase ImageScrollView
para aceptar sólo dos toques:
- (id)initWithFrame:(CGRect)frame
{
// ...
// Template code
// ...
[self.panGestureRecognizer setMinimumNumberOfTouches:2];
[self.panGestureRecognizer setMaximumNumberOfTouches:2];
}
Configuración PhotoViewController
's pagingScrollView
para aceptar sólo dos toques:
- (void)loadView
{
// ...
// Template code
// ...
[pagingScrollView.panGestureRecognizer setMinimumNumberOfTouches:2];
[pagingScrollView.panGestureRecognizer setMaximumNumberOfTouches:2];
}
Estas modificaciones se hacen directamente en la parte superior de PhotoS aplicación de muestra croller. Es de esperar que estos simples cambios funcionen para la interacción de dos dedos, sin embargo, los efectos secundarios son extraños (como se explicó anteriormente).
Descargando. 108mb o_O – 0xSina
@PragmaOnce: Sí, siento vincular una muestra tan grande. Contiene todas las imágenes a tamaño completo y en mosaico para la vista de desplazamiento de paginación. No son necesarias imágenes bonitas para demostrar mi punto, ¡pero eh ...! – Stuart
UIScrollView tiene sus propios reconocedores de gestos privados. Incluso el panGestureRecognizer expuesto es una clase privada. 'NSLog (@"% @ ", [pagingScrollView valueForKeyPath: @" gestureRecognizers.class "]);' -> '(UIScrollViewDelayedTouchesBeganGestureRecognizer, UIScrollViewPanGestureRecognizer, UIScrollViewPagingSwipeGestureRecognizer)'. Creo que deberás elegir una IU diferente. –