Skip to content
This repository has been archived by the owner on Aug 25, 2023. It is now read-only.

Checkbox

Pablo Igounet edited this page Aug 24, 2018 · 2 revisions

check

Un MLCheckBox es un widget que tiene dos estados, on y off. El uso del mismo, combinado con el MLCheckList provee una estructura de selección de items.

Check Box

Uso

Creación

Por XIB

para agregar un radio button a un xib, seguir los siguientes pasos:

  1. Agreagar una vista al xib
  2. Ponerle como custom class la clase MLRadioButton

screen shot 2016-06-15 at 12 49 29 pm

Por código usando Autolayout

Para crearlo usando Autolayouts, inicializar el botón con el siguiente método:

[[MLCheckBox alloc] init];

y luego aplicarle los constraints

Observaciones

El radio button preferentemente tiene que ser cuadrado de 15x15

Jerarquía

mlcheckboxclassdiagram

Habilitar o Deshabilitar

El CheckBox sobre-escribe la nueva funcionalidad de MLBooleanWidget para habilitar o deshabilitar el elemento usando el siguiente método:

- (void)setEnabled:(BOOL)enabled Animated:(BOOL)animated

El elemento queda grisado en el estado On u Off en el que estaba al momento de ejecutar ese método, y no va a admitir cambios de estado mientras está Deshabilitado. Va a realizar la siguiente animación:

mlenableanimation

Ejemplo de uso:
  • Inicializando el check button
MLCheckBox *checkBox = [[MLCheckBox alloc] init];
  • Seteándole el estado luego de que fue creado
[checkBox off];
  • Verificando el estado
[checkBox isOff];
  • Habilitar o Deshabilitar
[checkBox setEnabled:YES Animated:YES];
[checkBox setEnabled:NO Animated:YES];

Check List

Uso

Creación

Con check buttons

Se puede crear un check list con un NSArray de MLCheckBox y ésto crea el MLCheckList con todos los estados de los check buttons en clear

MLCheckBox *checkBox0 = [[MLCheckBox alloc] init];
MLCheckBox *checkBox1 = [[MLCheckBox alloc] init];
MLCheckBox *checkBox2 = [[MLCheckBox alloc] init];    

MLCheckList *checkList = [MLCheckList checkListWithCheckBoxes:@[checkBox0, checkBox1, checkBox2]];
Con longitud

Se puede crear un check list con una longitud y ésto creara internamente una lista de MLCheckBox.

[MLCheckList checkListWithCheckBoxCount:4]

Luego se puede acceder a ésta lita de la siguiente manera:

[checkList checkBoxes]

Observaciones

Si el check list se crea con 0 elementos o elementos negativos, éste lanzará una exception.

Interfáz

/**
 *  MLCheckList manage the multiple selection of an array of MLCheckBox
 */
@interface MLCheckList : NSObject

/**
 *  Static initialiser that returns an instance of MLCheckList.
 *  This method might be called only if you want to create the
 *  MLRadioButton objects, if you already have this object, whether you initialised theme in the
 *  xib file or by code, you might initialise the MLCheckList with
 *  checkListWithCheckBoxes: initialiser
 *
 *  @parms checkBoxCount    the amount of MLRadioButton objects that might initialise
 *  the return instance
 */
+ (instancetype)checkListWithCheckBoxCout:(NSUInteger)checkBoxCount;

/**
 *  Static initialiser that returns an instance of MLCheckList.
 *  This method might be called only if you already have the
 *  MLCheckBox objects, if you dont have this object, you might initialise
 *  the MLCheckList with radioButtonCollectionWithRadioButtonCount: initialiser
 *
 *  @parms checkBoxes    An array of MLCheckBox
 */
+ (instancetype)checkListWithCheckBoxes:(NSArray *)checkBoxes;

/**
 *  Returns an array of MLCheckBox
 */
- (NSArray *)checkBoxes;

/**
 *  Toggles de state of the MLCheckBox to on if its current state is off, or to off if its current state is on
 */
- (void)toggleCheckBoxAtIndex:(NSUInteger)index;

/**
 *  Returns the indexes in an array of the currently MLCheckBox with state in on
 */
- (NSArray *)indexesOfSelectedCheckBoxes;

@end

Ejemplo de uso:

  • Inicializando el check list
MLCheckList *checkList = [MLCheckList checkListWithCheckBoxCount:3];
  • Seleccionando un radio button en particular
[checkList toggleRadioButtonAtIndex:2];
  • Obteniendo el índice del radio button seleccionado
NSArray *indexesOfSelectedCheckBoxes = [checkList indexesOfSelectedCheckBoxes];