在UIImage上添加UILabel以创建新的UIImage

时间:2017-05-04 12:27:05

标签: ios swift uiimageview uiimage uilabel

我在UIImageView上添加了UILabel并添加了增加字体大小,改变颜色等功能。现在我需要的是在编辑完成后我们留下了UILabel及其属性,如frame,color,fontsize等。

我需要将UILabel添加到UIImage以生成新的UIImage

请建议需要做什么。如果我错了,还要纠正我。

我需要以UIImage

来实现这样的目标

黑色子视图是我需要获取的UIImage

注意: 这绝对不是重复:

How do I add text to an image in iOS Swift 因为我有很多属性可以考虑作为框架,它的边界,颜色,字体大小,对齐和比例等。我也不能截取视图。

enter image description here

解决方案:

有人将其投票为副本,因此我无法单独发布答案。 这个解决方案非常适合我。

我创建了一个在任何地方使用它的扩展程序: 进口基金会 导入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)

0 个答案:

没有答案