【发布时间】:2011-11-21 22:11:58
【问题描述】:
我得到了这段代码来截取视图。
UIGraphicsBeginImageContext(scrollView.bounds.size);
[scrollView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * data = UIImagePNGRepresentation(image);
但是,即使我将上下文设置为 320x480,滚动视图的部分内容仍然不会显示。滚动视图管理的视图可以完美地适应 320x480 框架,但它的一部分被状态栏、导航栏和 TabBar 覆盖。
我想对视图的部分进行全屏 (320x480) 屏幕截图,状态栏、TabBar 和 NavBar 可见。 有关如何执行此操作的任何指示?
一个额外的问题,可能是相关的:生成的图像使用 x1 比例,并且在视网膜显示器上看起来非常模糊,缩放需要更大的图像并将其缩小。这意味着我需要渲染 640x960 的屏幕截图来重现原始的清晰质量。我该怎么做呢?
谢谢!
【问题讨论】:
-
我澄清了这个问题。我想要做的是显示视图的各个部分,被标签栏等覆盖。
-
跟踪所有不应出现在屏幕截图中的视图。在调用
takeScreenShot方法之前,在调用屏幕截图后隐藏所有这些视图。取消隐藏它们。我有一个工具栏和一个按钮,以这种方式修复它很容易,而且耗时更少。
标签: objective-c cocoa-touch core-graphics screenshot