Как сохранить UIView в рулон камеры без отображения вида - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу реализовать простую функцию обмена.В моем приложении, если пользователь долго нажимал на UITableViewCell, он присутствует UIActionController с некоторыми кнопками.Первый позволяет делиться контентом с друзьями (UIActivityViewController)

Моя цель - сохранить текст ячейки с водяным знаком бренда в правом углу.

Пока я использую это расширениедля преобразования UIView в UImage:

extension UIView {
    func convertToImage() -> UIImage {
        if #available(iOS 10.0, *) {
            let renderer = UIGraphicsImageRenderer(bounds: bounds)
            return renderer.image { rendererContext in
                layer.render(in: rendererContext.cgContext)
            }
        } else {
            UIGraphicsBeginImageContext(self.frame.size)
            self.layer.render(in: UIGraphicsGetCurrentContext()!)
            let image = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            return UIImage(cgImage: image!.cgImage!)
        }
    }
}

Но у меня есть некоторые проблемы с этим.Работает только тогда, когда вид представлен на экране.Если я пытаюсь получить изображение из UIView, которое не отображается на экране, я получаю пустую переменную.

Даже с vc:

let vc = ViewController()
let image = vc.view.convertToImage()
//Image empty

Я не хочу, чтобы пользователь видел контент с водяным знаком на экране, мне нужно, чтобы водяной знак был добавлен только в рулон камеры.

Могу ли я это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...