Swift 从 UIView 的层中获取 UIImage

Posted

技术标签:

【中文标题】Swift 从 UIView 的层中获取 UIImage【英文标题】:Swift Get UIImage from layers of UIView 【发布时间】:2017-08-16 22:56:22 【问题描述】:

我的 UIView 中有 CAShapeLayers,我想要视图中的 UIImage。 所以我正在尝试通过下面的函数,但在处出现错误 UIGraphicsGetCurrentContext()

extension UIView

    func getImgFromVyuFnc() -> UIImage
    
        UIGraphicsBeginImageContext(self.frame.size)

        self.layer.renderInContext(UIGraphicsGetCurrentContext())
        let image = UIGraphicsGetImageFromCurrentImageContext()

        UIGraphicsEndImageContext()
        return image!
    

致命错误:在展开可选值时意外发现 nil 2017-08-17 04:17:47.230474 PicPac[1095:488887] 致命错误:在展开可选值时意外发现 nil

【问题讨论】:

最可能的问题是self.frame.size 在一个或两个维度上为零。 很高兴我能提供帮助。现在作为答案发布。祝你的应用好运! 【参考方案1】:

如果传递给UIGraphicsBeginImageContext(_) 的大小在一个或两个维度中为零,则UIGraphicsGetCurrentContext() 返回nilUIGraphicsGetImageFromCurrentImageContext() 也是如此。

【讨论】:

感谢您的提示和设置帧大小对我有用。你也可以考虑为我的问题投票吗?所以它会出现并帮助像我一样面临问题的其他人。

以上是关于Swift 从 UIView 的层中获取 UIImage的主要内容,如果未能解决你的问题,请参考以下文章

使用标识符/标签 (SWIFT) 从 UIView 获取 UITextField

Qt GraphicsScene XOR Line 或 Line 在单独的层中?

如何从 Swift 中的 ViewController 获取 UIView 子类实例

从 URL 获取 UIView 的图像 [Swift]

使用 UIPanGestureRecognizer 从 CGRect 获取 UIView - Swift 2.0

获取uiimageview下的uiview部分?