我目前正在使用此代码捕获屏幕:
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(keyWindow.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(keyWindow.bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
从Springboard可以正常工作,但在打开的应用程序中,没有创建图像。关键窗口和[UIScreen主屏幕]应该在任何地方工作,还是不应该?
我是否必须更具体,并以某种方式使用当前应用程序正在使用的特定窗口?
答案 0 :(得分:0)
这可能是一个愚蠢的答案,但您确定在尝试捕获关键窗口时加载了视图吗?
HOpe这有帮助。
答案 1 :(得分:0)
这仅适用于Jailbroken iOS:
// fwd declare a private function
UIKIT_EXTERN CGImageRef UIGetScreenImage();
// grab screen image from framebuffer.
// this grabs everything: status bar included
CGImageRef ref = UIGetScreenImage();
// create a UIImage out of CoreGraphics object
// at this point img contains your screenshot
UIImage* img = [UIImage imageWithCGImage:ref];
// release temp object
CGImageRelease(ref);