这是一个库,可以快速创建程序化表格视图以显示首选项,甚至更动态的内容。
有几种方法可以将 StaticTables 包含到您的 Xcode 项目中。
此方法在包含的示例项目中得到了演示(example/StaticTablesExample.xcodeproj)。
从 Finder 中将 StaticTables.xcodeproj
文件拖放到您的项目导航器(⌘1)。这应该会将 StaticTables 添加为您自己的项目的子项目(通过矩形表示,您应该能够浏览项目结构)。
在您的项目目标中,在“构建阶段”选项卡下,将 libStaticTables
或 StaticTables
添加到“链接二进制与库”下。这两者之间的区别在于前者是静态库,而后者是动态框架。动态框架不支持 iOS 7 之前的 iOS,而静态库不支持 Swift。
当您在“构建阶段”选项卡中时,将 libStaticTables.a
或 StaticTables.framework
添加到“目标依赖”下。选择与您在先前的步骤中选择的选项相匹配的选项。
如果您正在使用动态框架,您还需要将其添加到“嵌入框架”下。这确保了它作为您的应用程序包的一部分进行分发。或者,如果您正在使用静态库,在您项目目标的“构建设置”选项卡下搜索“Header 搜索路径”。将 StaticTables 项目的/src/StaticTables/
文件夹的路径添加到路径中。它应该看起来像"$(SRCROOT)/Vendor/src/StaticTables/"
,将Vendor
替换为从您的项目到 StaticTables 项目的相对路径。
当您在构建设置中时,搜索“其他链接器标志”。为了使用包含在 UITableView
中的类别,您需要确保此设置包含 -ObjC
标志。
构建您的项目(⌘B)。如果一切顺利,您应该会收到一个“构建成功”通知。这意味着您已经准备好在项目中实现 StaticTables。
在您想要实现 StaticTables 的视图控制器的头文件顶部包含 StaticTables
#import "StaticTables.h"
包含动态框架的语法略有不同
#import <StaticTables/StaticTables.h>
通过简单地对 JSMStaticTableViewController
进行子类化,就可以轻松实现 StaticTables。此类包含一些默认实现,并且您立即开始在 viewDidLoad
中构建初始数据源。
- (void)viewDidLoad {
[super viewDidLoad];
// Create an add a basic section
JSMStaticSection *employees = [JSMStaticSection section];
employees.headerText = @"Employees";
[self.dataSource addSection:employees];
// Now we just add a couple of rows
JSMStaticRow *becky = [JSMStaticRow row];
becky.text = @"Becky";
becky.detailText = @"Ticketing";
becky.style = UITableViewCellStyleSubtitle;
[employees addRow:becky];
JSMStaticRow *jason = [JSMStaticRow row];
jason.text = @"Jason";
jason.detailText = @"Ticketing";
jason.style = UITableViewCellStyleSubtitle;
[employees addRow:jason];
}
如果 JSMStaticTableViewController
无法满足您的需求,您可以将 JSMStaticDataSource
设为 UITableView
实例的数据源,从而获得更大的灵活性和控制权。
- (void)viewDidLoad {
[super viewDidLoad];
// Create and insert the tableview
UITableView *tableView = [[UITableView alloc] initWithStyle:UITableViewStyleGrouped];
[self.view addSubview:tableView];
// Create the data source instance
JSMStaticDataSource *dataSource = [JSMStaticDataSource new];
tableView.dataSource = dataSource;
// Create an add a basic section
JSMStaticSection *employees = [JSMStaticSection section];
employees.headerText = @"Employees";
[dataSource addSection:employees];
...
}
一旦初始化数据加载完成后,您可以使用包含的 UITableView
分类来从数据源中添加、移动和删除行,并自动应用动画。这对于简单的表格视图结构特别有用,例如偏好设置屏幕,其段落或行会对用户的输入做出响应。
[tableView performUpdates:^{
[tableView addSection:newSection withRowAnimation:UITableViewRowAnimationAutomatic];
} withCompletion:^{
NSLog(@"Oh look, the table view section has finished animating into place.");
}];
有关可用方法的更多详细信息,请参阅包含的示例项目(example/StaticTablesExample.xcodeproj),或文档,这些文档可以使用 appledoc 从头文件构建(主项目中有预配置的目标)。
该项目最初被设计为故事板中创建静态表格视图的替代方案,这样我就可以在不使用默认的编写表格视图的代码方法的情况下构建 GIFwrapped 的设置视图。
显然,它已经走了很远,老实说,我太懒了,不想改名字。
版权所有 © 2014 Daniel Farrelly
在以下条件下允许重新分发和使用源代码和二进制代码,无论是否修改:
本软件按“现状”提供,版权所有者和贡献者不提供任何明示或暗示的保证,包括但不限于适销性和适用于特定目的的暗示保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的购买、使用、数据或利润的损失;或业务中断)承担责任,无论此类损害基于何种理论(合同、严格责任或侵权,包括疏忽或不慎)以及是否被告知此类损害的风险。