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 |