Pregunta

Tengo dos vistas una debajo del otro. Estoy girando la siguiente vista táctil de la vista superior. Mientras intenta hacer un deslizamiento, se llama al evento Touches Canceled antes del evento Touches Fined. Mientras se mueven los toques de los dedos y se llaman los eventos movidos, y luego los toques finales se llama evento en el último (principalmente). Pero a veces mientras intenta moverse lentamente, el evento cancelado de toques se llama detener los eventos táctiles. Así que no pude rotar la vista a velocidad lenta. ¿Cuál puede ser el problema? ¿Cómo evitar toques de evento cancelado?

Nota: Estoy dibujando algunos gráficos en vistas usando Core-Plot LB.

¿Fue útil?

Solución

Si esta utilizando UIGestureRecognizers Cancelan automáticamente los toques a otras vistas cuando reconocen su gesto. Puedes apagar este comportamiento con el cancelsTouchesInView Propiedad del reconocimiento.

Otros consejos

Si no está utilizando UIGestureConizer directamente, tenga en cuenta los reconocedores de gestos de propiedad del UITouch. Tengo el mismo problema y con este código lo resuelvo:

if (event.type == UIEventTypeTouches)
{
    NSSet* tmpTouches = [event  touchesForView:m_PhotoView];
    if ([tmpTouches count] == 2)
    {
        UITouch *tmpTouch1 = [[tmpTouches allObjects] objectAtIndex:0];
        UITouch *tmpTouch2 = [[tmpTouches allObjects] objectAtIndex:1];
        if ((tmpTouch1 != nil)&&(tmpTouch2 != nil))
        {
            UIGestureRecognizer * tmpG;
            if ([tmpTouch1.gestureRecognizers count] > 0)
            {
                tmpG = [tmpTouch1.gestureRecognizers objectAtIndex:0];
                tmpG.cancelsTouchesInView = NO;
            }
            if ([tmpTouch2.gestureRecognizers count] > 0)
            {
                tmpG = [tmpTouch2.gestureRecognizers objectAtIndex:0];
                tmpG.cancelsTouchesInView = NO;
            }
            // Code ...
        }
    }
}

Esté atento a UISWIPEGESTURECOGITER también. Esto me estaba causando el problema y se resuelve una vez que establecemos

[recognizer setCancelsTouchesInView:FALSE];

Si un vista de desplazamiento esta involucrado, desactivar Su Toque de Contenido de Propiedad Puede cancelar el desplazamiento En el StoryBord.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top