【问题标题】:Generate image in Swift [duplicate]在 Swift 中生成图像 [重复]
【发布时间】:2016-04-02 12:31:07
【问题描述】:

这似乎是一个很简单的问题,但我在网上找到的关于该主题的文档很少:

如何使用 Swift 生成图像?

更具体地说,我有一个应用程序可以跟踪真实游戏的分数并保存这些分数。我希望我的用户能够按需生成记分板,并将其导出为图像,例如在 Facebook 上分享。大多数关于 UIImage 编程的教程似乎都是关于改变图像(如应用过滤器等),但这是另一种编程。

我认为在这里使用 HTML/CSS 生成记分牌是个好主意,因为可以使用它生成表格和概览,然后尝试将其导出为 pdf/bitmap/png,但我不确定是否这是正确的解决方案。

如何生成我的记分牌?

【问题讨论】:

    标签: ios swift image rendering


    【解决方案1】:

    从记分板创建图像的最简单方法是创建记分板视图 (UIView),用户可以与之交互,当您需要实际图像时,您拍摄视图的快照并将其保存在 UIImage 实例中.我创建了一个可以做到这一点的UIView 的扩展。

    extension UIView {
        func getImage() -> UIImage {
            UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.mainScreen().scale)
            drawViewHierarchyInRect(bounds, afterScreenUpdates: true)
            let image = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            return image
        }
    }
    

    然后您可以在任何UIView 上调用此方法,在您的情况下在记分牌视图上调用此方法。

    let scoreImage = scoreBoardView.getImage()
    

    您将获得 UIImage 实例,您可以稍后将其用作 PDF 或任何其他图像格式。

    【讨论】:

    • 那么,假设我在 UITableView 上调用此方法,它会起作用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多