# BEMCheckBox **Repository Path**: R2Jinx/BEMCheckBox ## Basic Information - **Project Name**: BEMCheckBox - **Description**: iOS checkbox - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-28 - **Last Updated**: 2022-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BEMCheckBox [](https://travis-ci.org/Boris-Em/BEMCheckBox) [](http://cocoadocs.org/docsets/BEMCheckBox) [](http://cocoadocs.org/docsets/BEMCheckBox) [](http://cocoadocs.org/docsets/BEMCheckBox) [](https://github.com/Carthage/Carthage)


pod 'BEMCheckBox'
#### Carthage
[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
Run `carthage update` after adding **BEMCheckBox** to your Cartfile to build the framework. Drag the built `BEMCheckBox.framework` into your Xcode project.
#### Manually
Finally, you can install **BEMCheckBox** manually. Simply drag and drop the *Classes* folder into your Xcode project. When you do so, make sure to check the "*Copy items into destination group's folder*" box.
### Setup
Setting up **BEMCheckBox** to your project couldn't be more simple. It is modeled after `UISwitch`. In fact, you could just replace instances of `UISwitch` by **BEMCheckBox** in your project!
Here are the steps to follow to get everything up and running:
1. Import `"BEMCheckBox.h"` to the header of your view controller:
```objective-c
#import "BEMCheckBox.h"
```
2. **BEMCheckBox** can either be initialized programatically (through code) or with Interface Builder (Storyboard file). Use the method that makes the most sense for your project.
**Programmatical Initialization**
Just add the following code to your implementation (usually in the `viewDidLoad` method of your View Controller).
```objective-c
BEMCheckBox *myCheckBox = [[BEMCheckBox alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
[self.view addSubview:myCheckBox];
```
**Interface Builder Initialization**
1 - Drag a `UIView` to your `UIViewController`.
2 - Change the class of the new `UIView` to `BEMCheckBox`.
3 - Select the `BEMCheckBox` and open the Attributes Inspector. Most of the customizable properties can easily be set from the Attributes Inspector. The Sample App demonstrates this capability.
## Documentation
All of the methods and properties available for **BEMCheckBox** are documented below.
### Enabling / Disabling the Checkbox
##### The `on` Property
Just like `UISwitch`, **BEMCheckBox** provides the boolean property `on` that allows you to retrieve and set (without animation) a value determining wether the BEMCheckBox object is `on` or `off`. Defaults to `NO`.
Example usage:
```objective-c
self.myCheckBox.on = YES;
```
##### `setOn:animated:`
Just like `UISwitch`, **BEMCheckBox** provides an instance method `setOn:animated:` that sets the state of the checkbox to On or Off, optionally animating the transition.
Example usage:
```objective-c
[self.myCheckBox setOn:YES animated:YES];
```
### Reloading
The instance method `reload` lets you redraw the entire checkbox, keeping the current `on` value.
Example usage:
```objective-c
[self.myCheckBox reload]
```
### Group / Radio Button Functionality
**BEMCheckBox**es can easily be grouped together to form radio button functionality. This will automatically manage the state of each checkbox in the group, so that only one is selected at a time, and can optionally require that the group has a selection at all times.
```objective-c
self.group = [BEMCheckBoxGroup groupWithCheckBoxes:@[self.checkBox1, self.checkBox2, self.checkBox3]];
self.group.selectedCheckBox = self.checkBox2; // Optionally set which checkbox is pre-selected
self.group.mustHaveSelection = YES; // Define if the group must always have a selection
```
To see which checkbox is selected in that group, just ask for it:
```objective-c
BEMCheckBox *selection = self.group.selectedCheckBox;
```
To manually update the selection for a group, just set it:
```objective-c
self.group.selectedCheckBox = self.checkBox1;
```
### Delegate
**BEMCheckBox** uses a delegate to receive check box events. The delegate object must conform to the `BEMCheckBoxDelegate` protocol, which is composed of two optional methods:
- `didTapCheckBox:`
Sent to the delegate every time the check box gets tapped, after its properties are updated (`on`), but before the animations are completed.
- `animationDidStopForCheckBox:`
Sent to the delegate every time the check box finishes being animated.
### Customization
**BEMCheckBox** is exclusively customizable though properties.
The following diagram provides a good overview:







