Я хочу реализовать простую функцию обмена.В моем приложении, если пользователь долго нажимал на 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
Я не хочу, чтобы пользователь видел контент с водяным знаком на экране, мне нужно, чтобы водяной знак был добавлен только в рулон камеры.
Могу ли я это сделать?