保存UIView时保持空白图像...如何保存UIView&子视图到相机胶卷?

时间:2016-01-02 21:10:50

标签: ios swift uiview camera uiimage

我有一个UIView canvas,当我按下UIBarButton shareBarButton时,我想在相机胶卷上保存它的屏幕截图(以及它的子视图)。但是,当我按下shareBarButton时,相机胶卷中显示的图像是完全黑屏。

任何有关为何发生这种情况的帮助将不胜感激!我也愿意接受有关将UIViews保存到相机胶卷上的其他(可能更好)方法的建议。

这是附加到shareBarButton

的方法
func share(sender: UIBarButtonItem) {
    let masterpiece = canvas.snapshotViewAfterScreenUpdates(true)
    let image = convertViewToImage(masterpiece)
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}

这是将UIView canvas转换为UIImage

的辅助函数
func convertViewToImage(masterpiece: UIView) -> UIImage{
    UIGraphicsBeginImageContextWithOptions(masterpiece.bounds.size, masterpiece.opaque, UIScreen().scale)
    masterpiece.layer.renderInContext(UIGraphicsGetCurrentContext()!)
    let img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return img;
}

1 个答案:

答案 0 :(得分:0)

截取屏幕截图:

func captureView(view: UIView) -> UIImage {
        var size: CGSize = self.imageViewObject.image.size
        UIGraphicsBeginImageContext(size)
        self.imageViewObject.image.drawInRect(CGRectMake(0, 0, size.width, size.height))
        self.imageOverLayObject.image.drawInRect(CGRectMake(0, 0, size.width, size.height))
        var image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }