UITableView最佳实践

6

在处理UITableView时,有哪些最佳实践可以提高性能、加快开发和维护速度?


可能是如何加速UITableView?的重复问题。 - Caleb
2个回答

7

这不是第一次在SO上提出这个问题了。这是我之前关于此问题的回答:

  • 动态行高很昂贵,因为它无法有效地缓存渲染视图,因为运行时不知道你将为给定单元格返回什么高度,直到进行调用。如果可能的话,请勿使用它。我曾被苹果工程师告知,更有效的方法是将所有单元格都绘制得比必要的稍微高一些,以适应一些较大的行,而不是使用动态高度。
  • -tableView:cellForRowAtIndexPath:方法中只获取一次数组项[items objectAtIndex:indexPath.row]
  • 对于任何图像或其他网络资源,请使用缓存。尝试使用EGOImageView stack,它可以有效地缓存其图像,并且是一些非常流畅的代码。
  • 当您在EGO github代码中时,请获取它们的EGOCache并将其用于缓存您需要操作的任何其他对象,例如解析和修改的字符串
  • 如果该单元格上的任何视图是透明的,请观看有关UIKit性能的WWDC 2011视频。他们有一种更有效的方法来在tableview单元格上绘制透明度
  • 如果您正在使用Core Data,请在表视图中使用NSFetchedResultsController。它处理加载故障、缓存索引和其他特定于表格的效率。

还要观看有关使用工具的WWDC视频,他们介绍了如何找到绘图代码影响性能的位置。今年有一些(一些而非全部)真正出色的会议。


1

优先进行优化,如果您需要自定义单元格,请使用子类UITableViewCell - 如果您有朝一日想要提高渲染性能,也许您会想要使用drawRect:来渲染内容。


谢谢,但你写的不多。 - atiq
1
除非你有更具体的问题,否则就没有什么可说的了 - 除此之外,我认为像官方文档中所写的那样做事情可能是最佳实践。 - Piotr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接