0

这是我获取视图屏幕截图的代码:

if (NULL != UIGraphicsBeginImageContextWithOptions){
    UIGraphicsBeginImageContextWithOptions(pagedScrollView.frame.size, NO, [[UIScreen mainScreen] scale]);
}else{
    UIGraphicsBeginImageContext(pagedScrollView.frame.size);
}

[pagedScrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
screenshotImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

UIImageView *imageView = [[UIImageView alloc] initWithImage:screenshotImage];
imageView.frame = CGRectMake(imageView.frame.origin.x, imageView.frame.origin.y, imageView.frame.size.width, imageView.frame.size.height);
imageView.backgroundColor = [UIColor greenColor];
[self.view addSubview:imageView];

我 100% 确定我有正确的框架和正确的视图 -UIImageView说它的大小 - 但问题是我无法让我UIImageUIImageView.

UIImageView添加到视图上,我看到上面有一个绿色区域 - 但里面没有图像,有什么问题吗?

我正在使用 iOS 6 和 ARC。

4

2 回答 2

1

好吧,我刚刚测试了在我的视图控制器视图上运行的代码,并且捕获和显示工作正常。这让我相信这pagedScrollView可能是零,或者是零帧。

无论哪种方式,您都将从空白上下文创建图像,然后将其传递给您的图像视图,从而导致没有任何可见图像。

于 2013-08-26T17:23:31.813 回答
0

事实证明,我一直在截取一段很长的屏幕截图,UIScrollView而且我总是截取它的第一页——它里面有很多页面,有时图层里面什么都没有。事实证明,它UIImage从未被释放,内存可以有效地存储几十个。

于 2013-08-27T08:36:15.167 回答