2010-02-02 19 views
9

¿Alguien conoce una versión del control UISlider de iPhone con dos pulgares? Necesito un control que permita especificar un rango de valores. Los documentos de la API de UISlider implicarían que esto no es posible con el control estándar, por lo que me preguntaba si alguien tenía una solución para esto (o si lo habían resuelto ellos mismos).iPhone UISlider con dos pulgares/indicadores?

Respuesta

-1

No conozco uno actual (es decir, todavía en desarrollo activo) pero probablemente podría obtener uno mirando el origen de BWToolkit (http://brandonwalkin.com/bwtoolkit/).

Hay una implementación de barra deslizadora estilo iTunes que probablemente podría extender.

Tiene licencia BSD y la fuente está disponible en bitbucket.

+0

BWToolkit es para el Mac, no el iPhone. –

7

Aquí hay un control deslizante gama acabo cociné

http://github.com/cmezak/CMRangeSlider

+0

Hola, miré tu código y quiero portarlo en el dispositivo y ver cómo funciona. ¿Debería usar RangeSlider.h y RangeSlider.m? ¿Puedo integrarlos en mi aplicación y ver cómo funciona? – Namratha

+0

Tu código no puede ser compilado. Faltan implementaciones de la imagen ◦ (void) setSuperRangeTrackImage: (UIImage *); ◦ (void) setSubRangeTrackImage: (UIImage *) imagen; Por favor ayuda. – Namratha

+2

Eek, perdón por eso. Acabo de presionar algunos cambios en Github para arreglar esto. – CharlieMezak

3

tuve este problema también. ¡La forma en que lo resolví fue un poco hack pero más simple para los noobs como yo!

Puse dos controles deslizantes uno encima del otro. Hizo la pista de uno invisible usando un archivo .png transparente. Luego creé un sliderReleased: método que vinculaba al evento touch up inside en el constructor de interfaz que cambia el userInteractionEnabled: estado de cada control deslizante.

Esto significa que solo puede establecer un control deslizante a la vez y tiene que tocar uno antes de poder configurar el otro, pero para mi propósito lo hace.

Relacioné el toque de ambos controles deslizantes dentro de este método y establecí las etiquetas en 1 y 2 y relacioné el evento de cambio de valor con métodos individuales como el normal.

-(IBAction) onReleaseBP: (id) sender { 
if ([sender tag]==1) { 
    [diastolicSld setUserInteractionEnabled:NO]; 
    [systolicSld setUserInteractionEnabled:YES];  
} 
else { 
    [systolicSld setUserInteractionEnabled:NO]; 
    [diastolicSld setUserInteractionEnabled:YES]; 
} 
5

Si todavía está interesado, esta es mi implementación. Lo estoy documentando bien para que todos puedan empezar a usarlo con facilidad.

https://github.com/fcy/fancy-ios/tree/master/src/ui/range-slider

Funciona con iOS 5+

+0

Esta página ya no existe – ingenspor

+0

Hola ingespor, Acabo de actualizar el enlace para que apunte a la ubicación correcta. –

+0

¿Todavía no hay documentos? – Ccr

0

aquí está mi solución. Una ventaja frente a otros controles de doble deslizamiento es que la mía admite tanto la configuración del control en el código como en el Constructor de interfaz utilizando IBDesignable/IBInspectable.

https://github.com/vermont42/JFADoubleSlider