我的问题是如何在相册中保存带有 textview 的图像? 我的意思是,当我写在图像上时,我想用我写的 textview 保存图像 Click to see the Image
这是我的代码,但不起作用
@IBAction func SaveImage(_ sender: Any) {
let imageRepresentation = UIImagePNGRepresentation(cv1image.image!)
let imageData = UIImage(data: imageRepresentation!)
UIImageWriteToSavedPhotosAlbum(imageData!, nil, nil, nil)
let alert = UIAlertController(title: "Completed", message: "Image has been saved!", preferredStyle: .alert)
let action = UIAlertAction(title: "Ok", style: .default, handler: nil)
alert.addAction(action)
self.present(alert, animated: true, completion: nil)
}
它可以工作,但文本没有保存 enter image description here
最佳答案
您必须使 textView 成为 UIImageView 的 subview 。然而,这在 Storyboard中是不可能的。完成你想要的最简单的方法是使用 UIView 作为容器 View ,将 ImageView 和 TextView 添加为 subview ,然后你可以使用下面的函数对 UIView 进行快照。您的 Storyboard文档大纲应如下所示
func snapshot(view: UIView) -> UIImage? {
UIGraphicsBeginImageContext(view.bounds.size)
let savedFrame = view.frame;
view.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext();
view.frame = savedFrame;
UIGraphicsEndImageContext();
return image
}
因此,您应该将 IBAction 更改为以下内容。您必须获取对包含这两个元素的 UIView 的引用。我在下面的代码中将其称为“containerView”。
@IBAction func SaveImage(_ sender: Any) {
let image = snapshot(view: containerView)
let imageRepresentation = UIImagePNGRepresentation(image!)
let imageData = UIImage(data: imageRepresentation!)
UIImageWriteToSavedPhotosAlbum(imageData!, nil, nil, nil)
let alert = UIAlertController(title: "Completed", message: "Image has been saved!", preferredStyle: .alert)
let action = UIAlertAction(title: "Ok", style: .default, handler: nil)
alert.addAction(action)
self.present(alert, animated: true, completion: nil)
}
关于ios - 我可以在相册中保存带 TextView 的图像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45920055/