Как запретить UIView drawHierarchy блокировать или останавливать выполняющуюся анимацию
Мое приложение отображает UIView в UIImage, используя следующий код:
func asImage() -> UIImage {
let renderer = UIGraphicsImageRenderer(bounds: bounds)
return renderer.image { rendererContext in
self.drawHierarchy(in: bounds, afterScreenUpdates: true)
}
}
Перед вызовом этого кода я помещаю индикатор загрузки на экран, который должен отображаться во время рендеринга изображения. Этот индикатор представляет собой анимированную последовательность через UIImageView. Анимация загрузки запускается нормально, но как только начинается рендеринг изображения, основной поток блокируется и анимация загрузки останавливается. Он зависает до завершения рендеринга, а затем возобновляется. Я считаю, что и манипуляции с UIImageView, и рендеринг должны происходить в основном потоке, поэтому я не уверен, как я могу избежать зависания анимации во время этого процесса. Мысли?