【问题标题】:rendering a uiview offscreen to capture as a uiimage在屏幕外渲染 uiview 以捕获为 uiimage
【发布时间】:2020-07-15 21:35:09
【问题描述】:

在我正在编写的个人 swift 应用程序中,我正在使用图表库来创建条形图并将它们显示在视图控制器中。到目前为止一切正常。现在我想创建其他图表,将它们捕获为 uiimage 以包含在 PDF 表单中...不显示图表。图表库创建了一个 uiview,我尝试了许多建议。 post1,还有这个post2,但运气不佳...

此代码有效,但强制我显示图表

    resourceBarChart.updateDataEntries(dataEntries: resChartData, animated: false)
    self.view.addSubview(resourceBarChart)
    let myimage1 = self.view.subviews[1].image(withScale: .native)

省略uiview的显示

    resourceBarChart.updateDataEntries(dataEntries: resChartData, animated: false)
    let myimage = resourceBarChart.image(withScale: .native)

返回一个空的画布。我尝试使用隐藏的属性,但没有运气(也许正如预期的那样)。作为新手,我怀疑我忽略了一个微妙之处,并愿意接受任何建议

【问题讨论】:

    标签: swift uiview uiimage


    【解决方案1】:

    在将视图捕获为 UIImage 之前尝试使用drawHierarcy

    resourceBarChart.drawHierarchy(in: resourceBarChart.bounds, afterScreenUpdates: true)
    

    【讨论】:

    • 非常感谢...它成功了!虽然我收到了这条消息[Snapshotting] View (0x7fc7a0d398d0, myApp.BasicBarChart) drawing with afterScreenUpdates:YES inside CoreAnimation commit is not supported.
    • 我不太确定该消息,也许您可​​以更改调用 drawHierarchy 函数的位置
    猜你喜欢
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多