ios - 如何将 UIView 保存到相机胶卷而不显示视图
问题描述
我想实现简单的分享功能。在我的应用程序中,如果用户长按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
我不希望该用户在屏幕上看到带有水印的内容,我只需要将水印添加到相机胶卷中。
我可以做吗?
解决方案
推荐阅读
- java - 无法在 Open API 3 中将类型“java.lang.String”的属性值转换为所需类型
- php - 使用命名空间 PHP 从 SOAP 输出中获取数据
- python - 用条件替换 ndarray 中的值
- php - 验证是否存在与 mySQL 的连接或让 Apache 执行此操作
- python - 如何使用 numpy 执行此复制操作?
- git - 尝试连接到 Bitbucket 的致命错误
- python - 循环在迭代整个列表之前停止
- node.js - npm:如何找到特定版本的节点模块的最新兼容版本?
- mongodb - 在 Mongoose 中填充数组
- spring-batch - Spring Batch 重启