我有一个带有tabbar的简单应用。视图大小为480 x 320.标签栏为49 x 320.但是当我尝试使用UIgraphicsbeginimagecontext(self.view.frame.size)截取屏幕截图时,我得到的图像为411 x 320 .. 我的背景图像是480 x 320,并在ios模拟器中正确显示。
当我使用UIgraphicsbeginimagecontext(480x320)时,屏幕截图底部会出现空白区域。
然而,当捕获屏幕时,背景图像被69个高度像素切割。 任何人都知道为什么我的背景图像在模拟器中正确显示但在拍摄屏幕截图时被裁剪..或者如果我增加imagecontext大小,如何捕获所有屏幕截图?
非常感谢
答案 0 :(得分:0)
状态栏是否显示?听起来像状态栏(20px)和UITabBar
(49px)是裁剪额外空间的地方。我想self.view
正在返回UIViewController
的视图,该视图小于您想要的镜头。
如果您只想要背景图片,请尝试缩小屏幕截图的大小,或者如果您想要整个屏幕,请尝试定位应用主窗口,如下所示
UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();