Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIImageView+;UIImage vs CALayer+;内容效率_Ios_Swift_Uiimage_Cgimage - Fatal编程技术网

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在评论中所说,如果需要进行性能优化,请使用工具来识别瓶颈。