Swift截图功能有时会返回空白的UIImageView

时间:2017-05-14 03:27:13

标签: ios swift uiscrollview uiimageview uigraphicscontext

我有以下代码,我一直用它来生成UIViews的截图。以下是有关何时起作用以及何时不起作用的一些细节:

工作时:

1)UIView完全用Swift构建(即,不是在Interface Builder中构建)

2)UIView的Superview是另一个UIView

如果不起作用:

1)UIView是在Interface Builder

中构建的

2)UIView的Superview是UIScrollView

3)我知道我正在返回图像并成功添加回superview,因为我打印每个返回的图像,并在调用函数并打印图像和子视图匹配后打印superview的子视图。

我试过在viewDidLoad和viewDidLayoutSubviews中调用该函数。在任何一种情况下,它都是加载视图时调用的最后一个函数。

func pictureTaker(_ rawView: UIView) -> UIImageView {
    UIGraphicsBeginImageContextWithOptions(rawView.bounds.size, false, 0)
    rawView.drawHierarchy(in: rawView.bounds, afterScreenUpdates: true)
    let screenshot = UIGraphicsGetImageFromCurrentImageContext();
    let viewImage = UIImageView(image: screenshot)
    UIGraphicsEndImageContext();
    viewImage.frame = rawView.frame
    return viewImage
}

0 个答案:

没有答案