A component-based library for UITableView 中文版本
Main Features | |
---|---|
🙅 | No more indexpath and array out of range |
👋 | Segregation of duties |
😁 | UITableViewCell will be automatically reusable |
🏡 | Data-driven |
✅ | Safe model to view mapping |
➡️ | One way binding |
📥 | Easy to compose different components together |
🚀 | Simple support for height cache and precalculate |
🔑 | ListDiff supported |
- iOS 9.0 or higher
- Xcode 11.0 or higher
pod 'M80TableViewComponent'
@implementation M80ItemComponent
- (Class)cellClass
{
return UITableViewCell.class;
}
- (CGFloat)height
{
return 44.0;
}
- (void)configure:(UITableViewCell *)cell
{
cell.textLabel.text = self.title;
}
@end
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *components = @[[M80ItemComponent component:@"Text" vcName:@"M80TextViewController"],
[M80ItemComponent component:@"ListDiff" vcName:@"M80ListDiffViewController"],
[M80ItemComponent component:@"Feed" vcName:@"M80FeedViewController"]];
M80TableViewSectionComponent *section = [M80TableViewSectionComponent new];
section.components = components;
M80TableViewComponent *tableViewComponent = [[M80TableViewComponent alloc] initWithTableView:self.tableView];
tableViewComponent.sections = @[section];
tableViewComponent.context = context;
self.tableViewComponent = tableViewComponent;
}
Class | Usage |
---|---|
M80TableViewComponent | TableView component which holds many section components |
M80TableViewSectionComponent | Section component which holds many cell components |
M80TableViewCellComponent | Cell component which is used for managing UITableViewCell |
M80TableViewViewComponent | View componnet |
M80TableViewComponentContext | Class which holds the context information for the tableview component |