создание нескольких моментальных снимков в главном потоке вызывает cra sh с UIGraphicsBeginImageContextWithOptions - PullRequest
0 голосов
/ 16 марта 2020

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

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

...