Ios 制作所有UIScrollView内容的快照

Ios 制作所有UIScrollView内容的快照,ios,objective-c,uiscrollview,screenshot,Ios,Objective C,Uiscrollview,Screenshot,我正在尝试拍摄一个UIScrollView的所有内容的快照,我在这里找到了一些代码,下面的代码是一半,因为快照是所有UIScrollView的,但背景是黑色的,这是代码: UIImage* image = nil; UIGraphicsBeginImageContextWithOptions(_scrollView.contentSize,YES,0.0f); { CGPoint savedContentOffset = _scrollView.contentOffset; C

我正在尝试拍摄一个UIScrollView的所有内容的快照,我在这里找到了一些代码,下面的代码是一半,因为快照是所有UIScrollView的,但背景是黑色的,这是代码:

UIImage* image = nil;

UIGraphicsBeginImageContextWithOptions(_scrollView.contentSize,YES,0.0f);
{
    CGPoint savedContentOffset = _scrollView.contentOffset;
    CGRect savedFrame = _scrollView.frame;

    _scrollView.contentOffset = CGPointZero;
    _scrollView.frame = CGRectMake(0, 0, _scrollView.contentSize.width, _scrollView.contentSize.height);

    [_scrollView.layer renderInContext: UIGraphicsGetCurrentContext()];
    image = UIGraphicsGetImageFromCurrentImageContext();

    _scrollView.contentOffset = savedContentOffset;
    _scrollView.frame = savedFrame;

}
UIGraphicsEndImageContext();

如何在快照中也显示背景?

背景未显示屏幕快照,因为它不在滚动视图中,因此您有几个选项,如果滚动视图占据整个视图区域,则您可以使用self.view的屏幕快照,如果它占据一个小区域,然后,您唯一的其他选择是将背景置于scrollView中,并拍摄scrollView的屏幕截图。这意味着分配一个新的UIImageView,重置帧以具有适当的宽度、高度和原点,然后将其添加到滚动视图中,拍摄快照,然后删除此
UIImageView