我有 2 个具有不同渲染器的 UIGraphicsImageRenderer 任务,当我运行它时,只返回一个任务,因为它是同步的,我如何等到两者都创建图像后再返回它们?
func createShareImage(callback: @escaping (_ image: UIImage, _ bgImage: UIImage) -> Void) {
let canvas = UIView()
...
let format = UIGraphicsImageRendererFormat()
format.scale = UIScreen.main.scale
let renderer = UIGraphicsImageRenderer(size: canvas.bounds.size, format: format)
let stickerImage = renderer.image { _ in
canvas.drawHierarchy(in: canvas.bounds, afterScreenUpdates: true)
}
let bgImageView = UIView()
...
let bgRenderer = UIGraphicsImageRenderer(size: bgImageView.bounds.size, format: format)
let bgImage = bgRenderer.image { _ in
bgImageView.drawHierarchy(in: bgImageView.bounds, afterScreenUpdates: true)
}
callback(stickerImage, bgImage)
}