Как запретить UIView drawHierarchy блокировать или останавливать текущую анимацию - PullRequest
0 голосов
/ 20 марта 2020

Мое приложение отображает UIView в UIImage, используя следующий код:

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

Перед тем, как этот код будет вызван, я поместил индикатор загрузки на экран, который должен отображаться во время выполнения рендеринга изображения. Этот индикатор представляет собой анимированную последовательность через UIImageView. Анимация загрузки запускается нормально, но как только начинается рендеринг изображения, основной поток блокируется и анимация загрузки останавливается. Он зависает до завершения рендеринга и затем возобновляется. Я считаю, что как манипулирование UIImageView, так и рендеринг должны выполняться в главном потоке, поэтому я не уверен, как избежать замораживания анимации во время этого процесса. Мысли? * * 1004

...