UITableView最佳实践



在处理UITableViews时,为了提高性能、加快开发和维护,有哪些最佳实践?

这不是第一次在SO上问这个问题。以下是我之前对这个问题的回答:

  • 动态行高是昂贵的,因为它无法有效地缓存渲染的视图,因为运行时在调用之前不知道给定单元格的返回高度。尽可能不要使用它。苹果工程师告诉我,把所有单元格都画得比需要的高一点,以容纳几行更大的单元格,比使用动态高度更有效
  • -tableView:cellForRowAtIndexPath:方法中的[items objectAtIndex:indexPath.row]只获取一次数组项
  • 对任何图像或其他网络资源使用缓存。试试EGOImageView堆栈,它可以有效地缓存图像,并且是一些非常流畅的代码
  • 当您使用EGO github代码时,获取它们的EGOCache,并使用它来缓存您需要操作的任何其他对象,例如解析和修改的字符串
  • 如果您对该单元格的任何看法都是透明的,请观看WWDC 2011关于UIKit性能的视频。他们有一个更有效的方法来在表视图单元格上绘制透明度
  • 如果使用的是Core Data,请在表视图中使用NSFetchedResultsController。它处理表ivews特有的加载错误、缓存索引和其他效率

还观看了WWDC关于使用仪器的视频,他们介绍了如何找到绘制代码会扼杀性能的地方。今年有一些(有些,不是全部)非常棒的会议。

Optimize last,因此如果您需要自定义单元格,请将UITableViewCell子类化-如果有一天您想提高渲染性能,则可能需要使用drawRect:来渲染内容。

最新更新