我在UIImageView上添加了UILabel并添加了增加字体大小,改变颜色等功能。现在我需要的是在编辑完成后我们留下了UILabel及其属性,如frame,color,fontsize等。
我需要将UILabel
添加到UIImage
以生成新的UIImage
。
请建议需要做什么。如果我错了,还要纠正我。
我需要以UIImage
黑色子视图是我需要获取的UIImage
注意: 这绝对不是重复:
How do I add text to an image in iOS Swift 因为我有很多属性可以考虑作为框架,它的边界,颜色,字体大小,对齐和比例等。我也不能截取视图。
解决方案:
有人将其投票为副本,因此我无法单独发布答案。 这个解决方案非常适合我。
我创建了一个在任何地方使用它的扩展程序: 进口基金会 导入UIKit
extension UIImage {
class func createImageWithLabelOverlay(label: UILabel,imageSize: CGSize, image: UIImage) -> UIImage {
UIGraphicsBeginImageContextWithOptions(CGSize(width: imageSize.width, height: imageSize.height), false, 2.0)
let currentView = UIView.init(frame: CGRect(x: 0, y: 0, width: imageSize.width, height: imageSize.height))
let currentImage = UIImageView.init(image: image)
currentImage.frame = CGRect(x: 0, y: 0, width: imageSize.width, height: imageSize.height)
currentView.addSubview(currentImage)
currentView.addSubview(label)
currentView.layer.render(in: UIGraphicsGetCurrentContext()!)
let img = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return img!
}
}
用法: 在ViewController上你有大小和要添加的标签的位置使用它如下 -
let newImageWithOverlay = UIImage.createImageWithLabelOverlay(label: labelToAdd, imageSize: size, image: editedImage)