{"id":25770302,"url":"https://github.com/setoff/easyform","last_synced_at":"2025-10-20T10:16:32.293Z","repository":{"id":56909717,"uuid":"50328572","full_name":"setoff/EasyForm","owner":"setoff","description":"Light lib to build forms for iOS","archived":false,"fork":false,"pushed_at":"2017-04-26T11:40:03.000Z","size":70,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-18T18:51:29.506Z","etag":null,"topics":["cocoapod","easyform","ios","objective-c","uitableview"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/setoff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-25T05:35:28.000Z","updated_at":"2017-04-26T11:07:38.000Z","dependencies_parsed_at":"2022-08-20T20:20:40.197Z","dependency_job_id":null,"html_url":"https://github.com/setoff/EasyForm","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/setoff%2FEasyForm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/setoff%2FEasyForm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/setoff%2FEasyForm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/setoff%2FEasyForm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/setoff","download_url":"https://codeload.github.com/setoff/EasyForm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240964954,"owners_count":19885838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cocoapod","easyform","ios","objective-c","uitableview"],"created_at":"2025-02-27T02:22:47.740Z","updated_at":"2025-10-20T10:16:27.258Z","avatar_url":"https://github.com/setoff.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EasyForm\n\n[![CI Status](https://travis-ci.org/setoff/EasyForm.svg?style=flat)](https://travis-ci.org/setoff/EasyForm)\n[![Version](https://img.shields.io/cocoapods/v/EasyForm.svg?style=flat)](http://cocoapods.org/pods/EasyForm)\n[![License](https://img.shields.io/cocoapods/l/EasyForm.svg?style=flat)](http://cocoapods.org/pods/EasyForm)\n[![Platform](https://img.shields.io/cocoapods/p/EasyForm.svg?style=flat)](http://cocoapods.org/pods/EasyForm)\n\nThis is `UITableViewDataSource/UITableViewDelegate` form constructor solution. It allows to use `UITableView/UITableViewCell` customization abilities. We provide several basic  [Cells](https://github.com/setoff/EasyForm/tree/master/EasyForm/Cells). If you haven't found any particular form UI element you can easily create it by yourself with familiar tools like InterfaceBuilder (using cell xibs) or by subclassing `UITableViewCell`. And pull-requests are welcome!\n\nForm configuration and logic can be implemented in declarative way. Can be placed in separate module and reused in different view controllers.\n\n## Try\n\nYou have two options to try lib:\n```sh\n$ git clone git@github.com:setoff/EasyForm.git\n$ cd EasyForm/Example\n$ pod install\n$ open EasyForm.xcworkspace\n```\nor\n\n```sh\n$ pod try EasyForm\n```\nAfter workspace has been opened select `EasyForm-Example` target and run app.\n\n## Usage\n\n`EFForm` implements `UITableViewDelegate` and `UITableViewDataSource` protocols. So you can easily use form with any instance of `UITableView`. But it is recommended to use with `UITableViewController` (or subclasses) because of several ‘free’ features like scrolling to focused text field which placed in `UITableViewCell`.\n\nForm implementation structure looks like this:\n```Objective-C\nself.form = [EFForm new];\n\n// Config form items\nEFElement *input = [[EFElement alloc] initWithTag:@\"inputField\"\n                                        cellClass:[EFTextFieldCell class]];\ninput.setupCell = ^(UITableViewCell *cell) {\n    ((EFTextFieldCell *)cell).textField.placeholder = @\"Tap to start typing\";\n};\n\nEFElement *switchElement = [[EFElement alloc] initWithTag:@\"switch\"\n                                                cellClass:[EFSwitchCell class]];\nswitchElement.setupCell = ^(UITableViewCell *cell) {\n    ((EFSwitchCell *)cell).titleLabel.text = @\"Cell with switch\";\n    ((EFSwitchCell *)cell).switchToggle.onTintColor = [EFExampleHelpers greenColor];\n    ((EFSwitchCell *)cell).onToggle = ^(BOOL isOn) {\n        [self.presentingController alertAction:[NSString stringWithFormat:@\"Toggle is %@\",\n                                                isOn ? @\"ON\" : @\"OFF\"]];\n    };\n};\n\n\n// Config section and add form elements\nEFSection *inputSection = [[EFSection alloc] initWithTag:@\"predefined\"\n                                              elements:@[input, switchElement]];\ninputSection.title = @\"Form section\";\n\n// Add sections to form\nself.form.sections = @[inputSection];\n[self.tableView displayForm:self.form];\n```\n\n## Installation\n\nEasyForm is available through [CocoaPods](http://cocoapods.org). To install\nit, simply add the following line to your `Podfile`:\n\n```ruby\npod \"EasyForm\"\n```\n\n## License\n\nEasyForm is available under the MIT license. See the LICENSE file for more info.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsetoff%2Feasyform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsetoff%2Feasyform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsetoff%2Feasyform/lists"}