0

我有一个带有标签栏的简单应用程序。视图大小为 480 x 320。标签栏为 49 x 320。但是,当我尝试使用 UIgraphicsbeginimagecontext(self.view.frame.size) 截屏时,我得到的图像为 411 x 320.. 我的背景图像是 480 x 320 并在 ios 模拟器中正确显示。

当我使用 UIgraphicsbeginimagecontext(480x320) 时,屏幕截图底部出现空白区域。

但是,当屏幕被捕获时,背景图像会被 69 个高度像素切割。任何人都知道为什么我的背景图像在模拟器中正确显示但在截屏时被裁剪。或者如果我增加 imagecontext 大小如何捕获所有截屏?

非常感谢

4

1 回答 1

0

状态栏是否显示?听起来状态栏(20px)和UITabBar(49px)是裁剪额外空间的地方。我想这self.view会返回一个UIViewController小于您想要的镜头的视图。

如果您只想要背景图像,请尝试减小屏幕截图的大小,或者如果您想要整个屏幕,请尝试定位应用程序主窗口,类似这样

UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
于 2012-11-08T14:53:07.253 回答