¿Cómo puedo hacer que mi UISlider
vaya desde 1-100
en incrementos de 5
?UISlider con incrementos de 5
Respuesta
Añadir un objetivo como éste:
slider.continuous = YES;
[slider addTarget:self
action:@selector(valueChanged:)
forControlEvents:UIControlEventValueChanged];
Y en la función valueChanged establece el valor en el valor más cercano que es divisible por 5.
[slider setValue:((int)((slider.value + 2.5)/5) * 5) animated:NO];
Hay otra manera de activar el paso a paso funcionalidad. funciona en un caso general
Ejemplo:
gama de datos sea de 0 - 2800 y Quiero los incrementos para estar en 25 valores unitarios. Haría lo siguiente
- configure el rango del control deslizante para que sea 0 - (maxRange/unitsteps).
- cuando el método de valor cambiado se ejecuta use (int) slider.value * unitsteps.
en el ejemplo anterior mi deslizador se establecería en el IB en un rango 0 - 112. y mi código sería (int) * 25. slider.value
si a continuación, tiene un campo de texto se puede modificar para la entrada directa, simplemente se haría lo contrario, establecer el valor del control deslizante en [textfield.text intValue]/unitsteps.
un efecto secundario de esto es que puede ayudar a imponer límites al valor del campo de texto ... –
Me pareció una solución perfecta. – Umair
Para aquellos que buscan la sintaxis Swift ...
override func viewDidLoad() {
super.viewDidLoad()
mySlider.addTarget(self, action: "sliderValueDidChange:", forControlEvents: .ValueChanged)
}
func sliderValueDidChange(sender:UISlider!)
{
//Set value to the nearest 5...
print((Float)((Int)((sender.value + 2.5)/5) * 5))
sender.setValue((Float)((Int)((sender.value + 2.5)/5) * 5), animated: false)
}
Alternativamente, basta con crear una función de Acción con el Editor Asistente (lo que hice en última instancia) ...
@IBAction func mySliderValueChanged(sender: UISlider) {
//Set value to the nearest int
sender.setValue(Float(roundf(sender.value)), animated: false)
}
Un poco solución más elegante en Swift podría ser algo como esto
let step: Float = 5
@IBAction func sliderValueChanged(sender: UISlider) {
let roundedValue = round(sender.value/step) * step
sender.value = roundedValue
// Do something else with the value
}
De esta manera obtienes ste ps de 5. Puede leer más sobre la configuración en mi post.
1. In storyboard mode, drag and drop a stepper and label. the label will show the stepper values.
- clic izquierdo y arrastre tanto etiqueta y paso a paso a su controlador de vista como puntos de venta.
nombre de etiqueta como "stepperValue"
- arrastrar y soltar paso a paso de nuevo lo que es una fun- Llamé mina "FUNC"
@IBAction func inc (remitente: AnyObject) {
stepperValue.text = "(Int (stepper.valor) * 5)"
haga clic en el paso a paso y que se incrementará en un 5
Por favor, edite su respuesta para una mayor legibilidad. –
en Swift 3, slider con incrementos de +/- 7:
@IBOutlet weak var sldComponent: UISlider!
...
sldComponent.addTarget(self, action: #selector(_sldComponentChangedValue),for: .valueChanged)
...
func _sldComponentChangedValue(sender: UISlider!) {
self.sldComponent.setValue((round(sender.value/7) * 7), animated: false)
print("\(sender.value)")
}
- 1. Secuencia de incrementos variables con R?
- 2. bucle en R con incrementos
- 3. Pan gesto interfiere con UISlider
- 4. C# Matriz de incrementos
- 5. incrementos de JavaScript
- 6. UISlider events
- 7. personalizada UISlider
- 8. iPhone UISlider con dos pulgares/indicadores?
- 9. Redondea a incrementos de 2.5?
- 10. UISlider y UIScrollView
- 11. Problema de gestos: UISwipeGestureRecognizer + UISlider
- 12. UILabel Over UISlider Thumb
- 13. Alinear UISlider - Objective-C
- 14. Demasiados incrementos de automóviles con ON DUPLICATE KEY UPDATE
- 15. Incrementos de impresión de 0.1 en C#
- 16. UISlider con velocidades variables de depuración (como la aplicación iPod)
- 17. Obtenga tiempo en incrementos de 1 ms
- 18. Desplazamiento horizontal de UIScrollView en incrementos escalonados?
- 19. cómo poner vertical a UISlider?
- 20. iOS - imagen personalizada para UISlider
- 21. Control de volumen usando UIslider Iphone?
- 22. Rellenar una selección con una serie de veces en incrementos, más opciones adicionales
- 23. ¿Cómo hacer invisible la "pista" de UISlider?
- 24. ¿Cómo puedo ocultar la pista de UISlider?
- 25. incrementos de la columna mysql auto_increment por un valor aleatorio
- 26. Incrementos de revisión de rama/maestra usando Git
- 27. Contador de incrementos de Ruby on Rails en el modelo
- 28. ¿Cómo puedo hacer un UISlider vertical?
- 29. Cómo crear un UISlider iPod-esque
- 30. ¿Cómo cambiar el UISlider a Vertical?
me siento honestamente estúpidos. es alw Ays las cosas simples que me atrapan. –
Gracias, evítenme pensar mucho al respecto ^^ Sin embargo, hice un ligero cambio: int increment = 10; [numberOfAppsInFutur setValue: ((int) ((numberOfAppsInFutur.value + increment/2.)/Increment) * increment) animated: NO]; –
En caso de que ayude, hay un ejemplo completo [aquí] (http://stackoverflow.com/a/8219848/168594). – zekel