2012-02-22 1 views
9

¿Hay algún control de casilla de verificación en la biblioteca de objetos para las aplicaciones iOS? Lo más cercano que veo es el control del interruptor, que puede tomar un valor booleano.Control de casilla de verificación para la aplicación iOS

+0

UISegmentedControl puede ayudarle a – 0xDE4E15B

+1

estados Uso UIButton para las marcas de verificación desactive /. Coloque las imágenes de desmarcar (estado normal) y verificar (estado seleccionado). – Hirak

+0

No, no hay un Control de UI predeterminado para la casilla de verificación o el botón de opción, aquí tiene que usar 2 imágenes diferentes para marcar y desmarcar y controlarlas lógicamente – kulss

Respuesta

36

Usted puede utilizar el estado seleccionado de un UIButton, establecer diferentes imágenes (o también textos) para diferentes tipos (a través de código, o Interface Builder):

[button setImage:[UIImage imageNamed:@"selected.png"] 
     forState:UIControlStateSelected]; 
[button setImage:[UIImage imageNamed:@"unselected.png"] 
     forState:UIControlStateNormal]; 

Y en el retoque de acción en el interior:

- (IBAction)buttonTouched:(id)sender 
{ 
    button.selected = !button.selected; 
    // add other logic 
} 
+0

Muy útil para mí. Gracias ..... – Vaquita

+0

Esta es una biblioteca de código abierto que proporciona implementación para él. https://github.com/t4ku/RadioButtonWithUIKit –

+0

No funciona. Tienes que tomar UIImageView. –

1

Este es el código que uso para dos casillas de verificación en la pantalla. (Los puse en la parte inferior de dos imágenes que también están en la pantalla. Uso el UIControlEventTouchDown para llamar al método checkBoxTapped. Este método habla con mi controlador de vista principal donde decido si la respuesta fue correcta o incorrecta. Luego, la vista principal controlador llama de nuevo el este punto de vista y le indica que debe cambiar el cuadro de texto en blanco para ya sea un cheque:

enter image description here

o un x

enter image description here

// Put the Checkboxes on the screen 
UIImage *checkBox = [UIImage imageNamed:@"Checkbox"]; 

self.checkBoxLeft = [UIButton buttonWithType:UIButtonTypeCustom]; 
[self.checkBoxLeft setImage:checkBox forState:UIControlStateNormal]; 
[self.checkBoxLeft setFrame:checkBoxFrameLeft]; 
[self.checkBoxLeft addTarget:self 
         action:@selector(checkBoxTapped:) 
      forControlEvents:UIControlEventTouchDown]; 

[self.checkBoxLeft setTitle:@"checkBoxLeft" forState:UIControlStateNormal]; 
self.checkBoxLeft.contentEdgeInsets = insets; 
self.checkBoxLeft.showsTouchWhenHighlighted = NO; // Keeps it from turning gray 

self.checkBoxRight = [UIButton buttonWithType:UIButtonTypeCustom]; 
[self.checkBoxRight setImage:checkBox forState:UIControlStateNormal]; 
[self.checkBoxRight setFrame:checkBoxFrameRight]; 
[self.checkBoxRight addTarget:self 
         action:@selector(checkBoxTapped:) 
      forControlEvents:UIControlEventTouchDown]; 

[self.checkBoxRight setTitle:@"checkBoxRight" forState:UIControlStateNormal]; 
self.checkBoxRight.contentEdgeInsets = insets; 
self.checkBoxRight.showsTouchWhenHighlighted = NO; // Keeps it from turning gray 

- (void)checkBoxTapped:(UIButton *)buttonPressed { 
    [[self delegate] checkBoxTapped:buttonPressed.currentTitle]; 
} 

- (void)highlightCheckbox:(NSString *)checkboxToHighlight withHighlight:(NSString *)highlight { 

    if ([checkboxToHighlight isEqualToString:@"left"]){ 
     [self.checkBoxLeft setImage:[UIImage imageNamed:highlight] forState:UIControlStateNormal]; 
    } else { 
     [self.checkBoxRight setImage:[UIImage imageNamed:highlight] forState:UIControlStateNormal]; 
    } 
} 
0

// definir la propiedad del botón

Declarar gráficos no controlados

- (void)viewDidLoad 
{ 
    [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateNormal]; 
} 

Imagen cuadros.

- (IBAction)buttonTapped:(id)sender 
{ 
    if (_checkboxButton.selected == YES) 
    { 
     [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"unchecked.png"] forState:UIControlStateSelected]; 
     _checkboxButton.selected = NO; 
    } 
    else 
    { 
     [_checkboxButton setBackgroundImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateNormal]; 
     _checkboxButton.selected = YES; 
    } 
} 
Cuestiones relacionadas