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