sale para mejor gratis descargar cuando iphone cocoa-touch ios uibutton radio-button
Descarga el proyecto de muestra

para - ios 12 iphone 7



La mejor implementación de botón de radio para iOS (9)

He escrito un controlador para manejar la lógica detrás de una serie de botones de radio. Es de código abierto y en GitHub, échale un vistazo!

https://github.com/goosoftware/GSRadioButtonSetController

Me gustaría preguntar si hay ejemplos sobre cómo implementar las opciones de botones de opción en una aplicación de iPhone.

Encuentro la Vista del selector bastante grande para una función de selección simple.

No estoy seguro de si Apple excluyó los botones de radio a propósito, y si es mejor usar simplemente una Vista de selector desde un punto de vista de usabilidad / experiencia de usuario.


La siguiente forma sencilla de crear un botón de opción en su aplicación iOS sigue dos pasos.

Paso 1: ponga este código en su viewDidLoad o cualquier otro método deseado

[_mrRadio setSelected:YES]; [_mrRadio setTag:1]; [_msRadio setTag:1]; [_mrRadio setBackgroundImage:[UIImage imageNamed:@"radiodselect_white.png"] forState:UIControlStateNormal]; [_mrRadio setBackgroundImage:[UIImage imageNamed:@"radioselect_white.png"] forState:UIControlStateSelected]; [_mrRadio addTarget:self action:@selector(radioButtonSelected:) forControlEvents:UIControlEventTouchUpInside]; [_msRadio setBackgroundImage:[UIImage imageNamed:@"radiodselect_white.png"] forState:UIControlStateNormal]; [_msRadio setBackgroundImage:[UIImage imageNamed:@"radioselect_white.png"] forState:UIControlStateSelected]; [_msRadio addTarget:self action:@selector(radioButtonSelected:) forControlEvents:UIControlEventTouchUpInside];

Paso2- Pon el siguiente método de acción de IB en tu clase.

-(void)radioButtonSelected:(id)sender { switch ([sender tag ]) { case 1: if ([_mrRadio isSelected]==YES) { // [_mrRadio setSelected:NO]; // [_msRadio setSelected:YES]; genderType = @"1"; } else { [_mrRadio setSelected:YES]; [_msRadio setSelected:NO]; genderType = @"1"; } break; case 2: if ([_msRadio isSelected]==YES) { // [_msRadio setSelected:NO]; // [_mrRadio setSelected:YES]; genderType = @"2"; } else { [_msRadio setSelected:YES]; [_mrRadio setSelected:NO]; genderType = @"2"; } break; default: break; } }


Para las pantallas de opciones, especialmente donde hay varios grupos de radio, me gusta usar una vista de tabla agrupada. Cada grupo es un grupo de radio y cada celda una opción dentro del grupo. Es trivial utilizar la vista accesoria de una celda para una marca de verificación que indica qué opción desea.

Si solo se pudiera hacer UIPickerView un poco más pequeño o sus gradientes fueran un poco más adecuados para agrupar dos en una página ...


Pruebe UISegmentedControl . Se comporta de manera similar a los botones de radio: presenta una variedad de opciones y permite al usuario seleccionar 1.


Pruebe DLRadioButton , funciona tanto para Swift como para ObjC . También puede usar imágenes para indicar el estado de selección o personalizar su propio estilo.

Compruébelo en DLRadioButton .

** Actualización: se agregó la opción para poner el indicador de selección en el lado derecho.

** Actualización: botón cuadrado añadido, IBDesignable , rendimiento mejorado.

** Actualización: añadido soporte de selección múltiple.


Sé que es muy tarde para responder esto, pero espero que esto pueda ayudar a alguien.

puede crear un botón como el botón de radio usando IBOutletCollection . cree una propiedad IBOutletCollection en nuestro archivo .h.

@property (nonatomic, strong) IBOutletCollection(UIButton) NSArray *ButtonArray;

conecte todos los botones con este IBOutletCollection y cree un método IBAction para los tres botones.

- (IBAction)btnTapped:(id)sender { for ( int i=0; i < [self.ButtonArray count]; i++) { [[self.ButtonArray objectAtIndex:i] setImage:[UIImage imageNamed:@"radio-off.png"] forState:UIControlStateNormal]; } [sender setImage:[UIImage imageNamed:@"radio-on.png"] forState:UIControlStateNormal]; }


Sólo quiero resumir, puede haber 4 maneras.

  • Si no tiene mucho espacio, agregue un evento de clic para texto o botón, luego muestre UIPickerView:

o abra un nuevo control de vista de tabla con una marca de verificación:

  • Si hay más espacio, agregue una vista de tabla directamente a su vista principal:
  • La solución final es utilizar UISegmentedControl:

Espero que esto ayude.


Tengo algunas ideas sobre cómo debería ser la mejor implementación de los botones de radio. Puede basarse en la clase UIButton y usar su estado ''seleccionado'' para indicar uno del grupo. UIButton tiene opciones de personalización nativas en IB, por lo que es conveniente diseñar XIB. También debería haber una manera fácil de agrupar botones usando las conexiones de salida de IB:

He implementado mis ideas en esta clase de RadioButton . Funciona de maravilla:

Descarga el proyecto de muestra .


-(void)radiobutton:(id)sender { ischecked =!ischecked; UIButton *check = (UIButton*)sender; if(ischecked == NO) [check setImage:[UIImage imageNamed:@"checkbox1.png"] forState:UIControlStateNormal]; else [check setImage:[UIImage imageNamed:@"checkbox-pressed.png"] forState:UIControlStateNormal]; }