создание нескольких снимков в основном потоке вызывает сбой с 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 нельзя использовать в фоновом режиме.

Есть ли другой способ создавать снимки просмотра в фоновом режиме?

0 ответов

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