以面向对象的方式描述 UITableView
的部分和行结构。适用于构建小型和 mostly 静态的表格,例如表单、设置、菜单等。我们更倾向于可读性而非内存效率,因此不建议在可能包含大量单元格的表格中使用它。
要运行示例项目,请克隆仓库,首先从 Example 目录运行 pod install
。
MEDeclarativeTable
为您的 UITableView
充当 UITableViewDataSource
和 UITableViewDelegate
。设置完成后,您可以通过 MEDeclarativeTable
来配置您的部分和行。
创建一个 MEDeclarativeTable
实例并将其设置为表格的数据源和委托。
MEDeclarativeTable *declarativeTable = [[MEDeclarativeTable alloc] init];
self.tableView.dataSource = declarativeTable;
self.tableView.delegate = declarativeTable;
所有表格至少需要一个部分。部分由 MEDeclarativeTableSection
类表示。
MEDeclarativeTableSection *section = [[MEDeclarativeTableSection alloc] init];
从这里,您可以配置部分的头部和尾部。以下示例设置头部标题。有关更多信息,请参阅 MEDeclarativeTableSection.h
。
section.headerTitle = @"Section Title";
将部分添加到表格中。
[declarativeTable addSection:section];
现在我们有一个部分,我们可以创建一些行并将其添加到其中。以下示例创建三个行。
MEDeclarativeTableRow *nameRow = [MEDeclarativeTableRow alloc] initWithStyle:MEDeclarativeTableRowStyleValue2];
nameRow.textLabelText = @"Name";
nameRow.detailTextLabelText = @"Mike Enriquez";
MEDeclarativeTableRow *emailRow = [MEDeclarativeTableRow alloc] initWithStyle:MEDeclarativeTableRowStyleValue2];
emailRow.textLabelText = @"Email";
emailRow.detailTextLabelText = @"[email protected]";
MEDeclarativeTableRow *deleteRow = [MEDeclarativeTableRow alloc] init];
deleteRow.textLabelText = @"Delete Contact";
deleteRow.configureCell = ^(UITableViewCell *cell) {
cell.textLabel.textAlignment = NSTextAlignmentCenter;
cell.textLabel.textColor = [UIColor redColor];
};
deleteRow.didSelectAction = ^() {
NSLog(@"TODO: Delete Contact tapped");
};
[section setRows:@[ nameRow, emailRow, deleteRow ]];
行可以包含自定义视图。使用 MEDeclarativeTableRowStyleCustomView
风格并设置 customView
。行的宽度将自动根据自定义视图的高度设置。
MEDeclarativeTableRow *row = [MEDeclarativeTableRow alloc] initWithStyle:MEDeclarativeTableRowStyleCustomView];
row.customView = self.myCustomView;
[section addRow:row];
MEDeclarativeTable 通过 CocoaPods 提供。要安装它,只需将以下行添加到 Podfile 中
pod "MEDeclarativeTable"
MEDeclarativeTable 根据 MIT 许可证提供。有关更多信息,请参阅 LICENSE 文件。