【问题标题】:Swift: Render CALayers to UIImageSwift:将 CALayers 渲染到 UIImage
【发布时间】:2015-01-03 07:03:46
【问题描述】:

我目前在我的应用程序中有一个自定义进度视图。我正在尝试绘制进度视图,然后对其进行“快照”,以便我可以在需要的地方传递它。因此,一旦我绘制了图层,我想将它们转换为单个 UIImage。

这是我当前的代码,其中还包括尝试保存到文档目录以查看图像。

        UIGraphicsBeginImageContext(self.frame.size)

        self.backgroundRingLayer.renderInContext(UIGraphicsGetCurrentContext())
        self.progressRingLayer.renderInContext(UIGraphicsGetCurrentContext())
        let image = UIGraphicsGetImageFromCurrentImageContext()

        let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        let documentsDirectory = paths[0] as String
        let data:NSData = UIImagePNGRepresentation(image) as NSData
        data.writeToFile(documentsDirectory, atomically: true)

        UIGraphicsEndImageContext()

我对使用 CGContext 之类的东西比较陌生,所以我可能会对此有所了解。任何帮助都会很棒,谢谢!

【问题讨论】:

  • 你到底想做什么?你已经将不同的 CALayer 渲染到一个单一的上下文中,这是什么意思?

标签: swift uiimage cgcontext


【解决方案1】:

只渲染超级视图的图层。它应该包括所有子视图和子层。

self.view.renderInContext(UIGraphicsGetCurrentContext())

【讨论】:

    猜你喜欢
    • 2016-12-05
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    相关资源
    最近更新 更多