Я хочу добавить текст на изображение, и я могу сделать это, как показано ниже.Как сделать текст в центре изображения?
func textToImage(drawText: NSString, inImage: UIImage, atPoint:CGPoint)->UIImage{
// Setup the font specific variables
var textColor: UIColor = UIColor.redColor()
var textFont: UIFont = UIFont(name: "AmericanTypewriter", size: 75)!
let textStyle = NSTextEffectLetterpressStyle
//Setup the image context using the passed image.
UIGraphicsBeginImageContext(inImage.size)
let textFontAttributes = [
NSFontAttributeName: textFont,
NSForegroundColorAttributeName: textColor,
NSTextEffectAttributeName : textStyle
]
inImage.drawInRect(CGRectMake(0, 0, inImage.size.width, inImage.size.height))
var rect: CGRect = CGRectMake(atPoint.x, atPoint.y, inImage.size.width, inImage.size.height)
drawText.drawInRect(rect, withAttributes: textFontAttributes)
var newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
Я назвал эту функцию, как показано ниже
let newImage : UIImage = textToImage(textToAdd!, inImage: imageToSave, atPoint:CGPoint(x: 20, y: 20)) //For now text is displaying at the top in left end for point(x:20 ,y:20)
Но проблема в том, текст взят пользователем. Они могут дать одно слово или большое предложение. Поэтому, если они дают только одно слово, оно должно появляться в верхней и средней части изображения или сверху сверху слева направо. это больше похоже на то, что я хочу установить выравнивание текста в центр. Чтобы достичь этого, я должен изменить приведенный выше CGPoint. Но я не понимаю, как изменить его, чтобы он выглядел хорошо во всех сценариях. Пожалуйста, помогите мне, как этого достичь.
Я пробовал это. Но я не могу так сказать, это показывает ошибку. –