NSCache和自定义UITableView绘图

时间:2011-08-21 10:21:31

标签: ios caching quartz-graphics

我有一个UITableView,它为UIViewbackgroundView属性使用selectedBackgroundView子类。根据位置(顶部/底部圆角),选择状态和一些自定义细节附件,视图会重新绘制。

这可能是一项昂贵的操作,所以我正在考虑使用NSCache来缓存一些绘制的视图。我目前正在考虑不同的方法:

  • 根据自定义属性缓存视图(如果同时使用多次视图,则无法工作 - >失败)
  • 根据视图的自定义属性缓存视图,并使用视图的副本(UIView不符合NSCopying协议 - >失败)
  • 缓存视图的UIImage表示形式,并将其分配到UIImageView
  • 根本不要使用NSCache或根本不使用自定义绘图?
  • ???

那么iOS性能调谐器,您更喜欢哪种方式?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

不要过早优化!

剪切视图并不昂贵,我在商店中有几个应用程序以60FPS滚动,同时使用drawRect和roundRect-Mask自定义绘制背景。

创建selectedBackgroundView的问题更少,因为用户主动执行任务(点击),如果生成视图的延迟时间为50毫秒,则没有人会注意到。

此外,NSCache是​​线程保存,所以它比你想要的更慢,更有可能是开销。

关于“视图的副本”,我认为没有任何理由要你这样做。