我想实现简单的共享功能。在我的应用中,如果用户长按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
我不希望用户在屏幕上看到带有水印的内容,我只需要将水印添加到相机胶卷中。
我可以吗?