Cómo mostrar valor de UISlider como entero
Pregunta
El valor de la UISlider muestra actualmente como un flotador. ¿Cómo muestro como un entero?
sliderCtl = [[UISlider alloc] initWithFrame:frame];
sliderCtl.minimumValue = 1;
sliderCtl.maximumValue = 15;
sliderCtl.continuous = NO;
sliderCtl.value = 1;
[sliderCtl setShowValue:YES];
Solución
Se puede truncar o redondear el valor del control deslizante y luego actualizarlo para dar la retroalimentación de los usuarios acerca del cambio (Al parecer, para ajustar al valor entero cuando el usuario suelta).
Otros consejos
si desea que su control deslizante para ajustar a diferentes valores enteros, podría utilizar algo como esto en su valueChanged-función:
-(IBAction)valueChanged:(UISlider*)sender {
int discreteValue = roundl([sender value]); // Rounds float to an integer
[sender setValue:(float)discreteValue]; // Sets your slider to this value
}
Esto se ajustará el control deslizante después de soltar el dedo a los valores como 1,2, ..., 15 en base a la distancia entre dos números. Si por ejemplo ha soltado el control deslizante en 2.4, que va a retroceda bruscamente a 2, mientras que en el 2,6 se ajustaría a 3.