如何在不显示视图的情况下将UIView保存到相机胶卷中

时间:2019-02-12 23:13:35

标签: ios swift uitableview uiimage

我想实现简单的共享功能。在我的应用中,如果用户长按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

我不希望用户在屏幕上看到带有水印的内容,我只需要将水印添加到相机胶卷中。

我可以吗?

0 个答案:

没有答案