Profiler 显示 CFRunLoopRun 在 20 秒内被调用超过 1000 次,占 85%,而我所做的只是滚动。UITableView 滚动似乎滞后,我不知道是什么导致了问题并专门调用 CFRunLoopRun。我有一个带有自定义单元格的 UITableView,它显示图像和一些标签。图像是在后台线程上加载的 dispatch_async(dispatch_get_global_queue,..) 所以我认为这不是造成它的原因。imageView 有圆角和边框,标签也有圆角和背景色。我很抱歉这么不具体,但有人遇到过类似的事情吗?
编辑1:
又看了一遍,发现CA Render、Layout、ImageProvider占据了大部分。这是调用树的图片
编辑2:
我发现设置 imageView 图像会调用上面的方法。如果我在设置图像的地方注释这一行代码,一切正常。我现在的问题是:为什么这么慢?我读过一些评论,我必须先在后台压缩图像,所以 UIImageView 不必在主线程上完成这项工作,但我想不出一个好的解决方案