我不知道如何将 UILabel 转换为 UIImage。[swift]

I do not know how to convert UILabel to UIImage.[swift]

我正在使用 UITextField。
我在 UITextField 中使用键盘输入字符。
当我点击键盘上的 return 按钮时,我将在 UILabel 中显示句子。
我想在 UILabel 中显示字符后将 UILabel 转换为图像。
但是,我不知道如何从 UILabel 转换为图像。
有没有更好的方法?

@IBOutlet var messageLabel: UILabel!
@IBOutlet var messageField: UITextField!

func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    messageLabel.text = messageField.text

    //Here I would like to convert from UILabel to image.
    //UILabel → image

}

您可以创建一个新的 UIImage、messageImage 类型的 IBOutlet,然后将您想要的图像添加到其中。当你想转换标签时,使用 isHidden 函数隐藏 messageLabel 并显示 messageImage。

messageLabel.isHidden = true
messageImage.isHidden = false

您可以使用 UIGraphicsBeginImageContextWithOptions 开始图像上下文,然后您可以使用 UIView 方法 func drawHierarchy(in rect: CGRect, afterScreenUpdates afterUpdates: Bool) -> Bool 在其上绘制标签内容:


let label = UILabel(frame: CGRect(origin: .zero, size: CGSize(width: 200, height: 50)))
label.text = "Whosebug"
label.backgroundColor = UIColor.red.withAlphaComponent(0.2)
label.textColor = .blue
label.textAlignment = .center
label.font = UIFont.boldSystemFont(ofSize: 24)

UIGraphicsBeginImageContextWithOptions(label.bounds.size, false, 0)
label.drawHierarchy(in: label.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()