Ios 从Viewcontroller保存3个图像

Ios 从Viewcontroller保存3个图像,ios,swift,uikit,Ios,Swift,Uikit,我正在申请拼贴式的申请。我的问题是,我有一个按钮来保存拼贴的3张图片,但只有一张保存了我。事先非常感谢 按钮代码是这样的 @IBAction func saveImage(_ sender: Any) { let imageData = ImageViewOne.image!.pngData() let compresedImage = UIImage(data: imageData!) UIImageWriteToSavedPhotosAlbum(

我正在申请拼贴式的申请。我的问题是,我有一个按钮来保存拼贴的3张图片,但只有一张保存了我。事先非常感谢

按钮代码是这样的

@IBAction func saveImage(_ sender: Any) {
        let imageData = ImageViewOne.image!.pngData()
      
    let compresedImage = UIImage(data: imageData!)
    UIImageWriteToSavedPhotosAlbum(compresedImage!, nil, nil, nil)
    
    let alert = UIAlertController(title: "Saved", message: "Your image has been saved", preferredStyle: .alert)
    let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)
    alert.addAction(okAction)
    self.present(alert, animated: true, completion: nil)
    
    }

如果我正确理解了问题-您有3个
UIImageView
s并希望将它们保存为屏幕上的状态

所以最简单的解决方案是将它们放入
UIView
容器中,然后将
UIView
的内容呈现到图像中

公共扩展视图{
func asImage()->UIImage{
let renderer=UIGraphicsImageRenderer(边界:边界)
返回renderer.image{rendererContext中的
drawHierarchy(in:bounds,AfterScreenUpdate:true)
}
}
}

如果我正确理解了问题-您有3个
UIImageView
s并希望将它们保存为屏幕上的状态

所以最简单的解决方案是将它们放入
UIView
容器中,然后将
UIView
的内容呈现到图像中

公共扩展视图{
func asImage()->UIImage{
let renderer=UIGraphicsImageRenderer(边界:边界)
返回renderer.image{rendererContext中的
drawHierarchy(in:bounds,AfterScreenUpdate:true)
}
}
}

谢谢你的回答。是的,我想用3 ImageView保存一张照片。问题是你告诉我的我不知道如何实现。@LucaToniBastian嗯,这是基础。不知道该怎么解释。如果
ImageViewOne.superew?.subview
仅显示3个UIImageView,则可以尝试
ImageViewOne.superew?.asImage()
获取组合图像。若并没有-你们应该修改UI层次结构,就像我在上面的帖子中描述的那个样,我不认为我能更好地解释它。谢谢你们的回答。是的,我想用3 ImageView保存一张照片。问题是你告诉我的我不知道如何实现。@LucaToniBastian嗯,这是基础。不知道该怎么解释。如果
ImageViewOne.superew?.subview
仅显示3个UIImageView,则可以尝试
ImageViewOne.superew?.asImage()
获取组合图像。如果没有-你应该修改UI层次结构,正如我在上面的帖子中所描述的那样,我认为我无法更好地解释它。你可以添加一点更多的信息或屏幕截图,以便我们能够理解实际问题是什么。你可以添加一点更多的信息或屏幕截图,以便我们能够理解实际问题是什么。