UITableView最佳实践

时间:2011-06-26 11:22:33

标签: iphone objective-c ios

在处理UITableViews时,为了提高性能,加快开发和维护速度,处理UITableViews时,最佳做法是什么?

2 个答案:

答案 0 :(得分:7)

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

  • 动态行高是昂贵的,因为它无法有效地缓存渲染的视图,因为运行时不知道在进行调用之前您将为给定单元返回的高度。如果可能的话,不要使用它。 Apple工程师告诉我,除了使用动态高度之外,将所有单元格绘制得比需要更高一些的单元更高效,而不是使用动态高度。
  • 仅在[items objectAtIndex:indexPath.row]方法
  • -tableView:cellForRowAtIndexPath:获取一次数组项
  • 对任何图像或其他网络资源使用缓存。试试EGOImageView stack,它可以有效地缓存它的图像,并且是一些非常漂亮的代码。
  • 当您使用EGO github代码时,抓住他们的EGOCache并使用它来缓存您需要操作的任何其他对象,例如解析和修改的字符串
  • 如果您对该单元格的任何观看是透明的,请观看有关UIKit性能的WWDC 2011视频。他们有一个更有效的方法来绘制tableview单元格的透明度
  • 如果您正在使用Core Data,请在表视图中使用NSFetchedResultsController。它处理加载故障,缓存索引以及特定于表ivews的其他效率。

同时观看使用乐器的WWDC视频,他们会查看如何找到绘图代码杀死性能的位置。今年有一些(有些,不是全部)非常棒的会议。

答案 1 :(得分:1)

优化最后,如果你需要自定义单元格,那么子类UITableViewCell - 如果你有一天想要提高渲染性能,你可能想要使用drawRect来渲染内容:而不是。