2

我正在尝试拍摄 UIScrollView 的所有内容的快照,我在 SO 上找到了一些代码,下面的代码工作了一半,因为快照是所有 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();

我怎么能在快照中也有背景?

4

1 回答 1

0

背景没有得到屏幕截图,因为它不在滚动视图中,所以你有几个选择,如果你的滚动视图占据了整个视图的区域,那么你可以拍摄 self.view 的屏幕截图,如果需要的话一个小区域,那么您唯一的其他选择是将背景放在滚动视图中并拍摄滚动视图的屏幕截图。这意味着分配一个新的 UIImageView,将框架重置为具有正确的宽度、高度、原点,然后将其添加到滚动视图中,拍摄快照,然后删除它UIImageView

于 2013-10-05T13:53:35.330 回答