我想生成UIScrollView的图像?

时间:2011-06-08 07:21:05

标签: iphone

在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];
}

1 个答案:

答案 0 :(得分:0)

尝试生成的图片不是来自UIScrollView,而是来自其内容视图。当您使用类似UIScrollView的内容向addSubview:添加一些视图时,它们会成为滚动内容的视图。当然,UIScrollView可以有多个内容视图(就像任何UIView可以有多个子视图一样),这种情况下渲染其图层会更加困难。但是,如果只有一个子视图(内容视图),您可以使用类似的内容(contentView这里只是一些视图,之前添加到UIScrollView):

[contentView.layer renderInContext:UIGraphicsGetCurrentContext()];

或:

[[[[scrollView subviews] lastObject] layer] renderInContext:UIGraphicsGetCurrentContext()];

当您想要使用多个视图时,我会更容易(我认为)添加一个“根”视图并将其他视图添加为该视图的子视图:所以您也可以使用上面的代码。