2012-11-08 36 views
0

我有一個簡單的應用程序與一個tabbar。視圖大小是480 x 320. tabbar是49 x 320.但是,當我嘗試使用UIgraphicsbeginimagecontext(self.view.frame.size)截圖時,我得到一個411 x 320的圖像。 我的背景圖像是480 x 320並在ios模擬器中正確顯示。與標籤欄應用截圖大小的問題

當我使用UIgraphicsbeginimagecontext(分辨率480x320)我得到空的空間中的屏幕截圖的底部..

但是當屏幕被捕獲的背景圖像由69個高度像素切割。 任何人都知道爲什麼我的背景圖像在模擬器中正確顯示,但在拍攝屏幕截圖時會被裁剪。或者,如果我增加imagecontext大小,如何捕獲所有屏幕截圖?

很多謝謝

回答

0

狀態欄是否顯示?這聽起來像狀態欄(20px)和UITabBar(49px)是正在裁剪額外空間的位置。我想self.view返回的是一個UIViewController的視圖,它比你想要的鏡頭更小。

如果你只想背景圖片,儘量減少了屏幕截圖的大小,或者如果你想整個屏幕,嘗試針對應用程序的主窗口,像這樣

UIGraphicsBeginImageContext(self.window.bounds.size); 
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext();