Pregunta

Me gustaría crear un control deslizante de velocidad variable en el iPhone. Básicamente estoy usando un control UISlider pero me gustaría añadir una segunda dimensión a este control al detectar que el dedo está en la vista actual.

por ejemplo. Un usuario puede deslizar el control hacia la izquierda y la derecha, pero quiero ver dónde está el dedo verticalmente en la vista.

Mi problema es que cuando se está manipulando un control deslizante. La siguiente función no se llama.

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

lo que esto significa que no puedo detectar eventos táctiles, ya que supongo que están siendo enviados a la corredera? Cualquier persona trató de hacer esto? O debería UISlider sub clase. Hmmm.

¿Fue útil?

Solución

cabecera

#import <Foundation/Foundation.h>


@interface JBSlider : UISlider {
    double verticalTouchDelta;
}
@property(nonatomic, assign)    double verticalTouchDelta;

@end

archivo principal

importación "JBSlider.h"

@implementation JBSlider

@synthesize verticalTouchDelta; - (void) sendAction: (SEL) medidas para: (id) forEvent objetivo: evento (UIEvent *) {     [SUPER sendAction: medidas para: objetivo forEvent: evento];     // NSLog (@ "HI HI");

UITouch * touch = [[event touchesForView:self] anyObject];
//NSLog(@"%f", [touch locationInView:self].y);
verticalTouchDelta  = [touch locationInView:self].y;    

}

@end

Simplemente cambiar su deslizador de UISlider a JBSlider en Interface Builder. Funciona increíble.

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