合并CATextLayer和UIImage

时间:2015-12-04 22:12:25

标签: ios uiimage calayer uigraphicscontext

我想将My CATextLayer与UIImage合并为一个UIImage。我正在使用此代码:

let textViewLayer = CATextLayer()
        textViewLayer.frame = CGRect(origin: CGPoint(x: lockText.imagePositionX, y: lockText.imagePositionY), size: lockImageView.frame.size)
        textViewLayer.string = lockText.textText
        textViewLayer.font = lockText.textFont.fontName
        textViewLayer.fontSize = lockText.textFontSize
        textViewLayer.foregroundColor = lockText.color.CGColor

        let textView = UIView(frame: lockImageView.frame)
        textView.layer.addSublayer(textViewLayer)

        lockImageView.addSubview(textView)

        UIGraphicsBeginImageContext(lockImageView.frame.size)
        textViewLayer.renderInContext(UIGraphicsGetCurrentContext()!)
        image = UIGraphicsGetImageFromCurrentImageContext()


        UIGraphicsEndImageContext();

但是UIGraphicsGetCurrentContext是NIL。有人能告诉我,我做错了吗?

1 个答案:

答案 0 :(得分:0)

我正在使用此代码来解决我的问题:

UIGraphicsBeginImageContext(image.size);
            image.drawInRect(CGRectMake(0, 0, image.size.width, image.size.height))
            let rect = CGRectMake(lockText.imagePositionX, lockText.imagePositionY, image.size.width, image.size.height);
            lockText.color.set()

            let text = lockText.textText as NSString
            text.drawInRect(rect, withAttributes: [NSFontAttributeName : lockText.textFont, NSForegroundColorAttributeName : lockText.color])
            image = UIGraphicsGetImageFromCurrentImageContext();
            UIGraphicsEndImageContext();