在iPhone应用程序中,我想要生成UIScrollView
的图片,其内容大小接近600*41000
。如果我使用当前图形图像上下文来捕获滚动视图图层,那么它只捕获滚动视图的可见部分而不是该滚动视图的整个图层。
我使用以下代码:
{
UIGraphicsBeginImageContext(CGSizeMake(600, 4100));
[scrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(00, 100, 710, 4100)];
img.image = viewImage;
[anotherScrollView addSubview:img];
}
答案 0 :(得分:0)
尝试生成的图片不是来自UIScrollView
,而是来自其内容视图。当您使用类似UIScrollView
的内容向addSubview:
添加一些视图时,它们会成为滚动内容的视图。当然,UIScrollView
可以有多个内容视图(就像任何UIView
可以有多个子视图一样),这种情况下渲染其图层会更加困难。但是,如果只有一个子视图(内容视图),您可以使用类似的内容(contentView
这里只是一些视图,之前添加到UIScrollView
):
[contentView.layer renderInContext:UIGraphicsGetCurrentContext()];
或:
[[[[scrollView subviews] lastObject] layer] renderInContext:UIGraphicsGetCurrentContext()];
当您想要使用多个视图时,我会更容易(我认为)添加一个“根”视图并将其他视图添加为该视图的子视图:所以您也可以使用上面的代码。