m80

M80TableViewComponent

A component-based library for UITableView

Showing:

Popularity

Downloads/wk

0

GitHub Stars

111

Maintenance

Last Commit

2yrs ago

Contributors

0

Package

Dependencies

0

License

MIT

Categories

Readme

M80TableViewComponent

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

System Requirements

  • iOS 9.0 or higher
  • Xcode 11.0 or higher

Installation

Cocoapods

pod 'M80TableViewComponent'

QuickStart

Define custom component

@implementation M80ItemComponent

- (Class)cellClass
{
    return UITableViewCell.class;
}

- (CGFloat)height
{
    return 44.0;
}

- (void)configure:(UITableViewCell *)cell
{
    cell.textLabel.text = self.title;
}

@end

Compose them


- (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;
}

Key Classes

ClassUsage
M80TableViewComponentTableView component which holds many section components
M80TableViewSectionComponentSection component which holds many cell components
M80TableViewCellComponentCell component which is used for managing UITableViewCell
M80TableViewViewComponentView componnet
M80TableViewComponentContextClass which holds the context information for the tableview component

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100