【问题标题】:UIImageView + UIImage vs CALayer + Content EfficiencyUIImageView + UIImage vs CALayer + 内容效率
【发布时间】:2018-05-29 16:26:05
【问题描述】:

目前,我有一个UIImageView,每隔几秒左右更新一次UIImage。在非常繁重的 UI 中,这是一个没完没了的过程。

考虑到尽可能使用CALayers 而不是UIView 的重量总是更轻,我想知道我是否将UIImageView 转换为CALayer 并将UIImage 设置为CALayer 的设置内容?


当前

//Every 2 seconds
myImageView.image = UIImage(cgImage: myCGImage)

建议

//Every 2 seconds
myLayer.content = myCGImage


由于UIImageView 的行为略有不同,我想知道哪种方法对 CPU/GPU 的整体效率更高。

【问题讨论】:

  • 我会质疑你的前提。图像视图 CALayer。渲染树由层组成。那你指的是什么区别?如果您遇到性能问题,请使用 Instruments 进行测量。如果没有,请继续。

标签: ios swift uiimage cgimage


【解决方案1】:

一般来说,UIView 对象是对CALayers 的相当薄的包装。 UIImageView 也不例外。在这两种情况下,解码和显示图像的大部分“繁重工作”都是由CALayer 完成的,所以我怀疑您是否会看到很大的不同。

UIImageView 更易于使用,生成的代码更易于阅读,所以除非你需要做一些需要你使用CALayers 的事情,否则我会坚持使用UIKit 对象。

【讨论】:

  • 但正如 Matt 在评论中所说,如果您需要进行性能优化,请使用 Instruments 来识别瓶颈。
猜你喜欢
  • 2012-02-08
  • 2013-03-17
  • 1970-01-01
  • 2013-05-20
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
相关资源
最近更新 更多