This class adds UIDatePicker or UIPickerView that will expand or collapse by tapping on the cell in your UITableView.
Inspired by Apple's DateCell example and andjash's DateCellsController.
## Minimum iOS version iOS 6.0 ## Usage 1. Import with `#import "PickerCells.h"` 2. Instantiate and setup `PickerCellsController` class.self.pickersController = [[PickerCellsController alloc] init];
[self.pickersController attachToTableView:self.tableView tableViewsPriorDelegate:self withDelegate:self];
- Add
UIPickerView
andUIDatePicker
instances with correspoding indexPaths
UIPickerView *pickerView = [[UIPickerView alloc] init];
pickerView.delegate = self;
pickerView.dataSource = self;
NSIndexPath *pickerIP = [NSIndexPath indexPathForRow:1 inSection:1];
[self.pickersController addPickerView:pickerView forIndexPath:pickerIP];
UIDatePicker *datePicker1 = [[UIDatePicker alloc] init];
datePicker1.datePickerMode = UIDatePickerModeDate;
datePicker1.date = [NSDate date];
NSIndexPath *path1 = [NSIndexPath indexPathForRow:2 inSection:0];
[self.pickersController addDatePicker:datePicker1 forIndexPath:path1];
- Check it out! Try pressing cells on specified indexPath's to see how pickers will expand underneath them.
- This class do not responsible for giving you information about picker selected values. You should do it by yourself. But you can get pickers from
PickerCellsController
object by using corresponding cells indexPaths:
id picker = [self.pickersController pickerForOwnerCellIndexPath:indexPath];
if ([picker isKindOfClass:UIDatePicker.class]) {
UIDatePicker *datePicker = (UIDatePicker *)picker;
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
cell.textLabel.text = [dateFormatter stringFromDate:[datePicker date]];
}
pod 'PickerCells'
MIT