iOS UITableViewCell优化

在我的应用程序中,我有一个包含自定义UITableViewCells的UITableView。 滚动是非常缓慢和缓慢,我需要解决这个问题。

每个单元格包含5-6个标签,几个button和一个图像。

我有一个单元格的xib,我放置button,标签和图像视图,但我把所有的图像设置在cellForRowAtIndexPath。 加载我使用的图像[UIImage imageNamed:@“”],我读的是更好的优化。 我也是重用细胞。

我也发现,即使我注释掉了,也没有设置图像,表格仍然是滞后的,只是标签设置了文本。

有没有人有任何build议,如何有一个相当复杂的表格单元,同时仍然有良好,平稳的performance? 将自定义单元格作为xib阻碍性能?

  1. 确保你真的在重复使用单元格。 确保您正在使用的单元标识符在界面构build器中的UITableViewCell的XIB中设置。

  2. 在子视图中使用较less的透明度。 如果可能的话,进入你的标签,并确保他们的背景与细胞的背景相匹配。

  3. 检查未经优化的代码。 例如,如果你正在显示一个格式化的date,并且每次调用tableview:cellForRowAtIndexPath:都会创build一个NSDateFormatter的实例,这真的会让你的应用程序停滞不前。

  4. 使用仪器与定时和核心animation模块来查找大部分时间花费在哪里。 最终,这些可以揭示真正的性能问题所在。

实现一个自定义的UITableViewCell子类,并在drawRect:完成自己的绘图drawRect:在一个不透明的UIView

这样做加快了滚动很多。

在IB中将一些属性设置为NO。

在滚动条中,将“水平滚动”设置为NO。 在触摸中,将“延迟内容触摸”和“可取消内容触摸”设置为NO

这将使平滑滚动你的表视图

    Interesting Posts