我正在使用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
}
答案 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()
答案 1 :(得分:-2)
您可以创建一个UIImage,messageImage类型的新IBOutlet,并将您想要的图像添加到那里。如果要转换标签,请使用isHidden函数隐藏messageLabel并显示messageImage。
messageLabel.isHidden = true
messageImage.isHidden = false