0

我的应用程序使用以下代码将 UIView 呈现为 UIImage:

func asImage() -> UIImage {
    let renderer = UIGraphicsImageRenderer(bounds: bounds)
    return renderer.image { rendererContext in
        self.drawHierarchy(in: bounds, afterScreenUpdates: true)
    }
}

在调用该代码之前,我在屏幕上放置了一个加载指示器,该指示器应在图像渲染正在进行时显示。该指示器是通过 UIImageView 生成的动画序列。加载动画开始正常,但是一旦图像渲染开始,主线程被阻塞并且加载动画冻结。它挂起直到渲染完成,然后恢复。我相信 UIImageView 操作和渲染都必须在主线程上进行,所以我不确定如何避免动画在此过程中冻结。想法?

4

0 回答 0