2011-05-25 13 views
5

Puedo detectar el evento de cambio de valor desde el UISlider, pero ahora necesito detectar a un usuario soltando el botón del control deslizante.Problema de UISlider: cómo detectar que un usuario suelte el botón del control deslizante en iOS?

¿Cómo detectar este evento (o tocar los extremos del control deslizante)?

¿Debo usar el evento "retocar el interior" para la detección?

Gracias.

+1

No es la solución perfecta, pero si no necesita realizar un seguimiento de los cambios, puede desactivar la propiedad continua del control deslizante. Esto le dará un evento y se disparará cuando el usuario suelte el control deslizante. – Hemant

Respuesta

2

No he trabajado con controles deslizantes, sin embargo, como UISlider hereda de UIView, seguramente puede tocar TouchBegan: y toquesEnded: para realizar su tarea.

2

A través de IB puede adjuntar "Touch Up Inside" y "Touch Up Outside" a un método/acción de viewController para la liberación del control deslizante.

O más programación (probablemente en su viewController), puede utilizar

- (void)addTarget:(id)target action:(SEL)action 
        forControlEvents:(UIControlEvents)controlEvents 

para detectar cuando el UIControlEventTouchUpOutside y UIControlEventTouchUpInside eventos ocurren a su UISlider.

Referencias

2

También puede utilizar UIControlEventValueChanged del UISlider. Establezca la propiedad continuous en NO como para iniciar cuando el usuario termine de seleccionar un valor.

[mySlider addTarget:self action:@selector(myMethod) forControlEvents:UIControlEventValueChanged]; 
mySlider.continuous = NO; 
0

UIControlEventTouchDown evento para detectar cuando el usuario comienza a usar el control. UIControlEventTouchUpInside cuando el usuario termina de usar el control deslizante. Para agregar el evento solo haga lo que @JohnK sugirió

Cuestiones relacionadas