selectedsegmentindex segmented how example control change swift uisegmentedcontrol

how - swift segmented control change view



Acción de palanca rápida en control segmentado (5)

@IBAction func SegmentedControllButtonClickAction (_ sender: UISegmentedControl) {

if sender.selectedSegmentIndex == 0 { print("First Segment Select") }else{ print("Second Segment Select") } }

Tengo un HMSegmentedControl con 4 segmentos. Cuando se selecciona, debería aparecer una vista emergente. Y cuando se desactiva la ventana emergente, y al intentar hacer clic en el mismo índice de segmento, debería aparecer nuevamente la ventana emergente. Al utilizar lo siguiente, no tiene ninguna acción al hacer clic en el mismo índice de segmento después de que el mensaje emergente haya sido cancelado.

segmetedControl.addTarget(self, action: "segmentedControlValueChanged:", forControlEvents: UIControlEvents.ValueChanged)


Configura el objetivo para que se dispare justo cuando cambia el valor, por lo que si selecciona el mismo segmento, el valor no cambiará y la ventana emergente no se mostrará, intente cambiar el evento a TouchUpInside, por lo que se activará cada vez que toque dentro del segmento

segmetedControl.addTarget(self, action: "segmentedControlValueChanged:", forControlEvents:.TouchUpInside)


Puedes agregar el mismo objetivo para múltiples eventos.

Así que digamos que tu segmentedControlValueChanged: ve así:

func segmentedControlValueChanged(segment: UISegmentedControl) { if segment.selectedSegmentIndex == 0 { } ... }

Luego puede agregar objetivos para más de 1 eventos para llamar a esta función:

segmentedControl.addTarget(self, action: "segmentedControlValueChanged:", forControlEvents:.ValueChanged) segmentedControl.addTarget(self, action: "segmentedControlValueChanged:", forControlEvents:.TouchUpInside)

Ahora se llamará a su función cuando se cambie un valor y cuando el usuario suelte el dedo.


Sintaxis Swift4:

segmentedControl.addTarget(self, action: "segmentedControlValueChanged:", for:.touchUpInside)


con swift3 utilízalo de esta manera:

con el remitente, use el remitente del nombre del remitente cuando desee acceder en la acción:

segmentControl.addTarget(self, action: #selector(changeWebView(sender:)), for: .valueChanged)

o

addTarget(self, action: #selector(changeWebView), for: .valueChanged)