首页 > 解决方案 > 在屏幕外渲染 uiview 以捕获为 uiimage

问题描述

在我正在编写的个人 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)

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

标签: swiftuiviewuiimage

解决方案


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

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

推荐阅读