Skip to content

Repository files navigation

FormKit.m

FormKit.m is a library that helps building forms with a table view.

It also handles synchronization of data between your model and the view (cells) when the user makes edits.

Everything looks good on iPhone and iPad for iOS versions 6+.

Installation

Copy FormKit dir into your project.

Or with CocoaPods

pod 'FormKit.m'

Example code

self.formModel = [FKFormModel formTableModelForTableView:self.tableView navigationController:self.navigationController];
self.formModel.labelTextColor = [UIColor blackColor];
self.formModel.valueTextColor = [UIColor lightGrayColor];
[FKFormMapping mappingForClass:[Movie class] block:^(FKFormMapping *mapping) {
[mapping sectionWithTitle:@"Information section"identifier:@"info"];
[mapping mapAttribute:@"title"title:@"Title"type:FKFormAttributeMappingTypeText];
[mapping mapAttribute:@"releaseDate"title:@"ReleaseDate"type:FKFormAttributeMappingTypeDate];
[mapping mapAttribute:@"suitAllAges"title:@"All ages"type:FKFormAttributeMappingTypeBoolean];
// Read-only field
[mapping mapAttribute:@"shortName"title:@"ShortName"type:FKFormAttributeMappingTypeLabel];
[mapping mapAttribute:@"numberOfActor"title:@"Number of actor"type:FKFormAttributeMappingTypeInteger];
[mapping mapAttribute:@"content"title:@"Content"type:FKFormAttributeMappingTypeBigText];
// Select fields using a picker or pushing a selection view controller
[mapping mapAttribute:@"choice"title:@"Choices"showInPicker:NOselectValuesBlock:^NSArray *(id value, id object, NSInteger *selectedValueIndex){
*selectedValueIndex = 1;
return [NSArrayarrayWithObjects:@"choice1", @"choice2", nil];
} valueFromSelectBlock:^id(id value, id object, NSInteger selectedValueIndex) {
return value;
} labelValueBlock:^id(id value, id object) {
return value;
}];
[mapping buttonSave:@"Save"handler:^{
}];
[self.formModel registerMapping:mapping];
}];
[self.formModel loadFieldsWithObject:movie];

Form Mapping

Validation

[formMapping validationForAttribute:@"title"validBlock:^BOOL(NSString *value, id object) {
return value.length < 10;
} errorMessageBlock:^NSString *(id value, id object) {
return@"Text is too long.";
}];

Contact

Bruno Wernimont

Contributors

Bitdeli Badge

About

Not maintained anymore

Resources

Stars

269 stars

Watchers

23 watching

Forks

Releases

Packages

Used by

Contributors

Languages