Tests已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
Released最后发布 | 2015 年 9 月 |
由 Christian Beer 维护。
Configurable Table View 是一个基于轻量级模型结构的 iOS(通用)UITableView 扩展。它定义了表中各节和单元格。根据不同类型的数据(如文本、数字、布尔值等)存在于不同的单元格。每个单元格都知道如何显示数据。您也可以轻松地添加自己的单元格类型以用于特殊单元格。
每个单元格都有一个 keyValuePath,它使用它来访问它显示的数据。此 keyValuePath 访问的数据对象在 Configurable Table View 中设置。
通过向单元格添加编辑器,单元格变为可编辑。不同类型的数据有不同的编辑器。例如,数字数据既可以输入使用数字键盘,也可以输入由定义的最小和最大值的滑块。
可以从表模型中添加和删除单元格,并且 UITableView 将自动更新。
示例项目演示了一些单元格及其在模型中的配置方式。
在 "ConfigurableTableView/src" 下找到 "ConfigurableTableView.xcodeproj" 文件。将 ConfigurableTableView.xcodeproj 拖动到 Xcode 项目“组和文件”侧栏的根目录。会出现一个对话框——在点击“添加”之前,请确保“复制项目”未选中,并且“引用类型”为“相对路径到项目”。
现在需要将 ConfigurableTableView 静态库链接到您的项目中。点击侧栏中刚添加的 ConfigurableTableView.xcodeproj 项。在“详细信息”表下,您将看到一个项目:libConfigurableTableView.a。检查 libConfigurableTableView.a 最右侧的复选框。
现在需要将 ConfigurableTableView 添加为项目的依赖项,以便当您编译项目时 Xcode 也会编译它。展开侧栏的“目标”部分,并双击您应用程序的目标。在“通用”选项卡下,“直接依赖项”部分,您可以点击“+”按钮,选择“ConfigurableTableView”,然后点击“添加目标”。
现在需要将图片和字符串的包添加到您的应用中。在 "ConfigurableTableView/src" 下找到 "ConfigurableTableView.bundle",并将其拖动到项目中。会出现一个对话框——点击“添加”之前,请确保“创建文件夹引用”被选中,“复制项目”未选中,并且“引用类型”为“相对路径到项目”。
现在需要将 Core Animation 框架添加到您的项目中。在项目(或等效)中的“框架”组上右键单击,然后选择“添加 > 现有框架”。然后找到 QuartzCore.framework 并将其添加到项目中。
最后,我们需要告诉您的项目在哪里查找ConfigurableTableView的头文件。打开您的“项目设置”,转到“构建”选项卡。寻找“头文件搜索路径”,双击它。将项目目录到“ConfigurableTableView/src/CBConfigurableTableView”目录的相对路径添加进去。
当您在项目设置中时,转到“链接器”部分的“其他链接器标志”,并将“-ObjC”和“-all_load”添加到标志列表中。
以下示例初始化CBConfigurableTableView的子类,并添加含有四个单元格的分区
- (id)init {
self = [super initWithStyle:UITableViewStyleGrouped];
if (!self) return nil;
CBTable *model = [CBTable tableWithSections:
[CBSection sectionWithTitle:@"Strings"
andCells:
[CBCellString cellWithTitle:@"Name" valuePath:@"name"],
[CBCellString cellWithTitle:@"First Name" valuePath:@"firstName"],
[CBCellPassword cellWithTitle:@"Password" valuePath:@"password"
editor:[CBEditorPassword editor]],
[CBCellString cellMultilineWithValuePath:@"description"],
nil],
nil];
self.model = model;
self.data = [NSMutableDictionary dictionary];
return self;
}