在调用DRAW功能后,保持字体属性一致



在使用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!]

最新更新