Как запретить 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, и рендеринг должны происходить в основном потоке, поэтому я не уверен, как я могу избежать зависания анимации во время этого процесса. Мысли?

0 ответов

Другие вопросы по тегам