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

时间:2017-12-12 02:34:06

标签: swift uiimage uitextfield uilabel uitextfielddelegate

我正在使用UITextField 我在UITextField中使用键盘输入字符 当我点击键盘上的返回按钮时,我将在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

}

2 个答案:

答案 0 :(得分:1)

您可以使用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 = "StackOverflow"
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()

enter image description here

答案 1 :(得分:-2)

您可以创建一个UIImage,messageImage类型的新IBOutlet,并将您想要的图像添加到那里。如果要转换标签,请使用isHidden函数隐藏messageLabel并显示messageImage。

messageLabel.isHidden = true
messageImage.isHidden = false