我正在对单元格(UITableViewCell 和 UICollectionViewCell)使用自动布局,但注意到重新使用单元格时会出现明显的性能缺陷,我想知道我可以做些什么来改进它。
也许是由于我创建/配置单元格的方式,在我的应用程序中我需要将书籍显示为单元格,并且不同的书籍类型有不同的布局,但我只有一个 BookCell,我在创建单元格时重新配置约束/根据书的类型重复用于特定的书。
据我了解,在我的情况下,自动布局应该比固定框架慢,步骤如下:
自动布局
- 删除当前约束
- 根据书籍的类型重新添加约束
- 设置书籍的所有标签/图像视图
我认为在内部第 2 步 iOS 将重新运行约束求解器,并在第 3 步将重新调整约束(即重新运行求解器)以满足所有带有文本和图像集的标签和图像视图。
固定布局
(有标签的不同框架列表,图像视图,不同类型) 1. 重新设置所有标签',图像视图'框架 2. 设置标签'文本和图像视图'图像
将所有自动布局单元格转换为使用固定帧需要一些时间,为了提高性能,我能想到的事情是:
- 复制通用 BookCell,并为每种类型制作一个单元格。
- 在设置约束之前设置所有标签、图像视图
- 对此不太确定,我应该在
updateConstraints
方法中还是在初始化程序中添加自动布局约束(例如initWithTableViewCellStyle:reusableIdentifier:
)?
非常感谢!