当我按下按钮时 UIView 到图像

UIView to to Image when I press button

我是新手,正在练习中。我有一个带有 3 个 imageView 的应用程序(创建头像应用程序)。我希望当我按下按钮时,使用 3 个自定义图像视图保存图像。我的代码如下:

    @IBAction func saveImageMen (_ sender: Any) {
           
    
            
           }
   extension UIView{
         func createTransparentImage () -> UIImage {
             let renderFormat = UIGraphicsImageRendererFormat.default ()
             renderFormat.opaque = false
             self.isOpaque = false
             self.layer.isOpaque = true
             self.backgroundColor = UIColor.clear
             self.layer.backgroundColor = UIColor.clear.cgColor
             let renderer = UIGraphicsImageRenderer (size: bounds.size, format: renderFormat)
             return renderer.image {
                 (context) in
                 layer.render (in: context.cgContext)
             }
         }
    }

我不知道如何在按下按钮时运行此扩展程序

所以它是 UIView class 的扩展,你可以用 class 的实例调用一个函数所以你去:

UIView().createTransparentImage()

这将 return 图像,以便像上面那样使用它:

let image  = UIView().createTransparentImage()

既然你想渲染一个图像,你可以为 UIImageView 创建扩展,因为它是从下面的 UIView 派生的,这将在点击按钮时渲染图像:

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var imageView: UIImageView!
   override func viewDidLoad() {
   super.viewDidLoad()
 }

@IBAction func renderImage(_ sender: Any) {
   imageView.createTransparentImage()
}

}

extension UIImageView {
 func createTransparentImage () {
     let renderFormat = UIGraphicsImageRendererFormat.default ()
     renderFormat.opaque = false
     self.isOpaque = false
     self.layer.isOpaque = true
     self.backgroundColor = UIColor.black
     self.layer.backgroundColor = UIColor.black.cgColor
     let renderer = UIGraphicsImageRenderer (size: bounds.size, format: renderFormat)
     self.image = renderer.image {
         (context) in
         layer.render (in: context.cgContext)
     }
 }
}