ConfigurableTableView 1.7.1

ConfigurableTableView 1.7.1

Tests已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最后发布2015 年 9 月

Christian Beer 维护。



  • 作者:
  • Christian Beer

Configurable Table View

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