Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brunow/FormKit.m
Not maintained anymore
https://github.com/brunow/FormKit.m
Last synced: about 1 month ago
JSON representation
Not maintained anymore
- Host: GitHub
- URL: https://github.com/brunow/FormKit.m
- Owner: brunow
- License: apache-2.0
- Created: 2012-07-24T19:17:09.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-04-23T07:35:42.000Z (over 10 years ago)
- Last Synced: 2024-09-17T21:53:05.387Z (3 months ago)
- Language: Objective-C
- Homepage: https://twitter.com/brunowernimont
- Size: 1.14 MB
- Stars: 272
- Watchers: 24
- Forks: 44
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - FormKit.m - Not maintained anymore (etc)
- awesome - FormKit.m - Not maintained anymore (etc)
README
## 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
```objective-c
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:NO
selectValuesBlock:^NSArray *(id value, id object, NSInteger *selectedValueIndex){
*selectedValueIndex = 1;
return [NSArray arrayWithObjects:@"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](https://github.com/brunow/FormKit.m/raw/master/form-mapping.png)
## Validation
```objective-c
[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
- Twitter - [@brunowernimont](http://twitter.com/brunowernimont)
## Contributors
- Reiner Pittinger - [@rpitting](https://twitter.com/rpitting)
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/brunow/formkit.m/trend.png)](https://bitdeli.com/free "Bitdeli Badge")