создание нескольких снимков в основном потоке вызывает сбой с UIGraphicsBeginImageContextWithOptions
Я пытаюсь создать несколько снимков экрана массива представлений viewController для отображения в collectionView.
Для создания этих представлений я использую следующее:
private func takeImagePreviewSnapshot(view: UIView) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(view.frame.size, false, 3)
if UIGraphicsGetCurrentContext() != nil {
view.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
} else {
return nil
}
}
Проблема в том, что когда я делаю это для сотен просмотров, приложение вылетает из-за использования слишком большого количества памяти. Я не могу сделать это в фоновом потоке, потому что view.layer.render нельзя использовать в фоновом режиме.
Есть ли другой способ создавать снимки просмотра в фоновом режиме?