DSAutoSizeTableView 1.0.3

DSAutoSizeTableView 1.0.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2015年8月
SPM支持 SPM

Daniel Saidi 维护。



AutoSizeTableView

AutoSizeTableView 是一个 iOS Swift 库,可以使表格视图的单元格根据其内容调整大小。

问题

在 iOS 中,表格视图控制器必须能够计算每个单元格的高度(或者至少返回一个值)。但是,如果单元格高度取决于宽度,这可能会有难度,因为该方法在单元格被显示之前被调用(因此单元格还没有框架)。

为了解决这个问题,一个常见的做法是使用硬编码的宽度。这是一个不好的做法,因为单元格的宽度取决于设备类型、表格视图样式和设备方向等因素。

AutoSizeTableView 如何操作

而不是使用硬编码的值,AutoSizeTableView 类会拦截第一个重新加载数方法调用,并使用它将假内容渲染到隐藏的表格视图中。

一旦这样做,AutoSizeTableView 类将拥有所有它需要的信息,可以计算出真实表格视图中每个单元格的高度。

第一次重新加载数方法是用户不可见的,紧随其后的是第二次重新加载数方法,该方法使用收集到的信息。

如何使用 AutoSizeTableView

要使用此功能,请确保您的表格视图继承自 AutoSizeTableView 而不是 UITableView。然后在 heightForRowAtIndexPath 中,将表格视图强制转换为 AutoSizeTableView 实例并返回 heightForCell 方法返回的值。

如果您的应用程序支持多种方向,实现 didRotateFromInterfaceOrientation 方法并调用 handleOrientationChange 方法。

您也可以使您的表格视图控制器继承自 AutoSizeTableViewController 类。它会自动处理一切。如果您不能使用继承,您可以仅仅获取该类中实现的方法。

AutoSizeTableView 会自动计算默认和子标题表格视图单元格的高度。自定义单元格必须实现 AutoSizeTableViewCell

当前问题

目前,您必须手动将每个单元格标签中 行数 设置为 0。如果不这样做,自动调整大小将不会工作。

示例

该仓库中的示例项目展示了如何使用类来自动调整标准表格视图单元格的大小。

CocoaPod

您可以使用 CocoaPods(查看 https://cocoapods.org.cn)轻松地将此库添加到自己的项目中。只需将以下内容添加到您的 pod 文件中:

pod 'AutoSizeTableView', '<version>'

联系

如果您想了解我正在进行的其他项目,请联系我。

Project site:   http://github.com/danielsaidi/AutoSizeTableView
CocoaPod:       https://cocoapods.org.cn/pods/AutoSizeTableView
Blog:           http://danielsaidi.wordpress.com
Twitter:        http://twitter.com/danielsaidi

对项目的贡献非常受欢迎。只需发拉取请求或者联系我即可。