Swift 为什么我的屏幕截图不显示当前视图?

Swift 为什么我的屏幕截图不显示当前视图?,swift,Swift,当我拍摄屏幕截图来分享我的设备(iPhone)的当前视图时,它只会占据它的上部,当我向下滚动到底部(运行时我的tableview),屏幕截图是空白的,好像没有捕捉设备上的当前视图-我希望我在这里解释得很好 我遗漏了什么吗 func captureScreen() -> UIImage { UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, false, 0); self.view.drawViewHi

当我拍摄屏幕截图来分享我的设备(iPhone)的当前视图时,它只会占据它的上部,当我向下滚动到底部(运行时我的tableview),屏幕截图是空白的,好像没有捕捉设备上的当前视图-我希望我在这里解释得很好

我遗漏了什么吗

func captureScreen() -> UIImage {

    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, false, 0);
    self.view.drawViewHierarchyInRect(view.bounds, afterScreenUpdates: true)
    let image:UIImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image
}

将代码更改为以下内容:

func captureScreen() -> UIImage {

UIGraphicsBeginImageContextWithOptions(self.view.frame.size, false, 0);
self.view.drawViewHierarchyInRect(view.bounds, afterScreenUpdates: true)
let image:UIImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return image
}

注意代码中从绑定到框架的更改。
UIGraphicsBeginImageContextWithOptions
中的最后一个参数与比例有关<代码>如果指定值为0.0,则比例因子设置为设备主屏幕的比例因子


了解更多信息

检查此项不确定是否相关,但您是否知道
边界
框架
之间的区别?可能在其中一种方法中,您应该使用
frame
。我认为应该是
UIGraphicsBeginImageContextWithOptions(self.view.frame.size,false,1)
这确实是用
frame
替换
bounds
。谢谢大家!有没有办法接受你的答案?我看不到复选标记。它们只是注释,不是答案!因此您不能接受一个;)很乐意帮忙