TOInsetGroupedTableView
TOInsetGroupedTableView
是 UITableView
的子类,它将 iOS 13 中引入的新的“嵌套分组”视觉样式回退到旧版本的 iOS。
在 iOS 13 及更高版本上,它将回退到使用系统实现,这意味着不需要额外的配置代码。
这个库非常适合那些在他们的应用中采用新的圆角表格视图样式,但仍然支持 iOS 12 的开发者。
功能
- 将现代圆角外观带到旧版本 iOS 的表格视图中。
- 所有覆盖行为都包含在表格视图中。不需要修改单元格视图本身。
- 在 iOS 13 及更高版本上回退到系统实现。
- 由于代码仅在 iOS 13 以下执行,因此未来 iOS 版本的发布不会破坏构建。
要求
- Xcode 11.0 或更高版本。
- iOS 12.0 或更高版本(iOS 11 应该可以工作,但仍然需要测试。)
安装
手动安装
- 下载最新版本的
TOInsetGroupedTableView
仓库。 - 在仓库内部,将
TOInsetGroupedTableView
文件夹复制到您自己的 Xcode 项目中。 - 可选操作,在 Swift 中,确保将头文件添加到您的 Swift 桥接头中。
CocoaPods
在您应用的 Podfile 中添加:
pod 'TOInsetGroupedTableView'
使用
将 TOInsetGroupedTableView
集成到您的应用程序中非常简单,因为它不引入任何新的 API 或更改任何外部输入。所需的所有操作只是用 TOInsetGroupedTableView()
替换 UITableView()
实例。
Swift
在 Swift 中,类名已重命名为 InsetGroupedTableView
。为了将其集成,您只需替换任何实例。
self.tableView = UITableView(frame: .zero, style: .insetGrouped)
使用
self.tableView = InsetGroupedTableView(frame: .zero)
不需要进行其他更改。
Objective-C
与 Swift 类似,所有要求只是将任何 UITableView
实例重命名为 TOInsetGroupedTableView
。
例如,简单地替换任何实例
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleInsetGrouped];
使用
self.tableView = [[TOInsetGroupedTableView alloc] initWithFrame:CGRectZero];
致谢
TOInsetGroupedTableView
由 Tim Oliver 创建。
TORoundedTableView
有何不同?
这个库与 TORoundedTableView
是一个具有类似目标的库:复制自 iOS 7 中存在于 Settings.app 中的具有圆角边框的表格视图样式。
TORoundedTableView
原本于 2016 年底发布,旨在支持 iOS 8.0 及以上版本。
由于当时 iOS 上的 API 以及那个时代硬件的相对图形性能,TORoundedTableView
需要对 UITableView
和其组件进行大量修改才能实现效果并保持高帧率。
最值得注意的是,为了在单元格上具有圆角顶盖,还需要创建 UITableViewCell
的子类,这增加了实现的复杂性,意味着它不能简单地集成到现有的实现中。
通过专注于最近版的 iOS 版本,其中已经完全移除 OpenGL,现在有更多 Core Animation API,TOInsetGroupedTableView
能够实现与 TORoundedTableView
相同的效果,而不需要子类化任何单元格。
此外,通过观察 iOS 13 中 .insetGrouped
的行为,还可以配置 TOInsetGroupedTableView
来与其协同工作,允许在可能的情况下将相同代码默认回退到 iOS 13 实现。
许可协议
TOInsetGroupedTableView
采用 MIT 许可证。更多信息请参阅 LICENSE 文件。