在使用attributes
功能的draw()
之后,我很难保持字体大小,位置和颜色。
我有一个UIImage
和一个UITextField
,我试图将它们都绘制到一个UIImage
中。到目前为止,我已经能够实现这一目标,但是在调用draw()
函数之后,尝试保持字体属性一致,因此很难实现。
我首先开始新的imageContext
,然后将所需的图像绘制到CGRect
中。然后,我使用UITextField
重复此过程。
UIGraphicsBeginImageContextWithOptions(takenImage.size, true, takenImage.scale)
let areaSize = CGRect(x: 0, y: 0, width: self.takenImage.size.width, height: self.takenImage.size.height)
takenImage.draw(in: areaSize)
let imageViewSize = self.tempImageView.frame.size
let multiWidth = areaSize.width / imageViewSize.width
let multiHeight = areaSize.height / imageViewSize.height
let textSize = CGRect(x: textOverlay.frame.origin.x * multiWidth, y: textOverlay.frame.origin.y * multiHeight, width: textOverlay.frame.size.width * multiWidth, height: textOverlay.frame.size.height * multiHeight)
let ribbon = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
ribbon.setFill()
UIRectFillUsingBlendMode(textSize, CGBlendMode.normal)
let convertChatText: String = textOverlay.text!
let attrs = [NSFontAttributeName: UIFont(name: "Helvetica Neue", size: 17.0)!]
convertChatText.draw(with: textSize, options: .usesLineFragmentOrigin, attributes: attrs, context: nil)
let outputImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
您可以在上面的代码段中看到,我将UITextField.text
转换为String
并添加UIFont
属性。然后将这些属性用作draw
函数中的参数。
查看我的最终图像输出后,由于某种原因,指定的属性不会应用于我不确定为什么的文本?
我猜我正在做错误,但不能弄清楚什么?
更新我已经上传了图像,这些图像进一步解释了我的问题,可以在这里查看。
预先感谢
尝试使用textfield的属性
let font = textField.font
let textColor = textField.textColor
let attrs = [NSFontAttributeName: font!, NSForegroundColorAttributeName : textColor!]