Ios UIImageView+;UIImage vs CALayer+;内容效率
目前,我有一个Ios UIImageView+;UIImage vs CALayer+;内容效率,ios,swift,uiimage,cgimage,Ios,Swift,Uiimage,Cgimage,目前,我有一个UIImageView,每隔几秒钟左右更新它的UIImage。在一个非常繁重的UI中,这是一个无休止的过程 考虑到使用CALayer在UIView上尽可能的使用UIImageView总是重量较轻,我想知道我是否将UIImageView转换为CALayer,并将UIImage设置为CALayer的内容 当前 //Every 2 seconds myImageView.image = UIImage(cgImage: myCGImage) 暗示 //Every 2 seconds
UIImageView
,每隔几秒钟左右更新它的UIImage
。在一个非常繁重的UI中,这是一个无休止的过程
考虑到使用CALayer
在UIView
上尽可能的使用UIImageView
总是重量较轻,我想知道我是否将UIImageView
转换为CALayer
,并将UIImage
设置为CALayer
的内容
当前
//Every 2 seconds
myImageView.image = UIImage(cgImage: myCGImage)
暗示
//Every 2 seconds
myLayer.content = myCGImage
由于
UIImageView
的作用稍有不同,我想知道哪种方法在CPU/GPU上更有效。一般来说,UIView
对象是CALayers
周围相当薄的包装UIImageView
也不例外。在这两种情况下,解码和显示图像的大部分“繁重工作”都是由CALayer
完成的,因此我怀疑您是否会看到很大的差异
UIImageView
更易于使用,生成的代码也更易于阅读,因此,除非您需要使用CALayers
,否则我会坚持使用UIKit
对象。一般来说,UIView
对象是CALayers
周围相当薄的包装物UIImageView
也不例外。在这两种情况下,解码和显示图像的大部分“繁重工作”都是由CALayer
完成的,因此我怀疑您是否会看到很大的差异
UIImageView
更易于使用,生成的代码也更易于阅读,因此除非您需要做一些需要使用CALayers
的事情,否则我会坚持使用UIKit
对象。我会质疑您的前提。图像视图是CALayer。渲染树由层组成。那么你指的是什么区别呢?如果您有性能问题,请使用仪器进行测量。如果没有,就继续,我怀疑你的前提。图像视图是CALayer。渲染树由层组成。那么你指的是什么区别呢?如果您有性能问题,请使用仪器进行测量。如果没有,就继续。但正如Matt在评论中所说,如果需要进行性能优化,请使用工具来识别瓶颈。但正如Matt在评论中所说,如果需要进行性能优化,请使用工具来识别瓶颈。