我不知道如何将 UILabel 转换为 UIImage.[swift] [重复]
Posted
技术标签:
【中文标题】我不知道如何将 UILabel 转换为 UIImage.[swift] [重复]【英文标题】:I do not know how to convert UILabel to UIImage.[swift] [duplicate] 【发布时间】:2017-12-12 02:34:06 【问题描述】:我正在使用 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
【问题讨论】:
首先,您的意思是:“我在 UILabel 中的 UITextField 上显示字符。” ? 对不起。我将纠正解释的几句话。 您问题中的代码与将标签转换为图像有什么关系? @rmaddy 谢谢。我想从 UILabel 转换为图像。 @ginger 我知道你在问什么。我在问您问题中的当前代码与您的实际问题有什么关系?您的实际问题(将 UILabel 转换为 UIImage)与文本字段没有任何关系。 【参考方案1】:您可以使用UIGraphicsBeginImageContextWithOptions
开始一个Image 上下文,然后您可以使用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 = "***"
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()
【讨论】:
感谢您给我的好建议。【参考方案2】:您可以创建一个新的 UIImage 类型的 IBOutlet,messageImage,然后在其中添加您想要的图像。当你想转换标签时,使用 isHidden 函数隐藏 messageLabel 并显示 messageImage。
messageLabel.isHidden = true
messageImage.isHidden = false
【讨论】:
感谢您的建议。但是,我不想隐藏 UILabel 的句子。 这与将 UILabel 转换为 UIImage 有何不同?无论哪种方式,UILabel 都不再显示/存在。 @sn8wman 这两个甚至一点也不相似。问题是询问如何根据动态标签的内容创建图像。以上是关于我不知道如何将 UILabel 转换为 UIImage.[swift] [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将 NSString 对象中的字符转换为 UILabel 对象?