在我的iPhone應用程序中,我捕獲設備的屏幕快照。在屏幕截圖視圖中,我有不同的層次結構視圖,底部是空白背景視圖,然後是背景圖片視圖,圖片視圖是EAGLView。我想用EAGLView的幀大小捕獲設備的屏幕截圖,它應該包含imageview和背景視圖。這裏是我的代碼:UIView和iOs背景下的屏幕截圖
- (IBAction)captureScreen:(id)sender{
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.cameraAppView.layer renderInContext:UIGraphicsGetCurrentContext()]; // cameraAppView is the EAGLView
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGImageRef imageRef = CGImageCreateWithImageInRect([viewImage CGImage], cameraAppView.frame);
UIImage *img = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
}
但現在我只得到EAGLView的屏幕截圖,我想通過EAGLView幀大小的設備的屏幕截圖。我怎樣才能做到這一點?
編輯
對不起,我錯過了我的問題點。在同一屏幕上還有一些其他子視圖。但他們都是EAGLView的頂部。我想捕獲視圖的圖像,在EAGLView下面包括EAGLView內容。
EAGLView是視圖的子視圖,ImageView也是視圖的子視圖。但它的層次排列就像EAGLView在頂部,在中間和底部視圖中的運行視圖。 – Mithuzz
如果我改變你說的代碼,它等於self.view.layer吧?但在這種情況下,我從該視圖中獲取所有子視圖。我很抱歉,我錯過了一個問題,請檢查最新的一個。 – Mithuzz