iPad详细视图方向错误的屏幕截图

iPad详细视图方向错误的屏幕截图,ipad,screenshot,xcode5,Ipad,Screenshot,Xcode5,我正试图在iPad上捕捉风景主/细节布局中细节视图的屏幕截图。 这是我尝试使用的代码 UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow]; CGRect rect = [self.view bounds]; UIGraphicsBeginImageContextWithOptions(rect.size, YES, 0.0f); CGContextRef context = UIGraphicsGetCurren

我正试图在iPad上捕捉风景主/细节布局中细节视图的屏幕截图。 这是我尝试使用的代码

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
CGRect rect = [self.view bounds];
UIGraphicsBeginImageContextWithOptions(rect.size, YES, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];
UIImage *capturedScreen = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
这有两个问题。 -屏幕捕获方向不正确。我得到一个侧面的图像。 -宽度=703和高度=768的尺寸被屏幕截图颠倒,因此我在细节屏幕截图中使用了一些主视图。 我做错了什么?谢谢

这样试试

-(UIImage *)captureScreenForRect:(CGRect)frame
{       
    CALayer *layer;
    layer = self.view.layer;
    UIGraphicsBeginImageContext(self.view.bounds.size);
    CGContextClipToRect (UIGraphicsGetCurrentContext(),self.view.bounds);
    [layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return screenImage;
}
为上述方法传递详细视图框架rect。希望这对你有帮助

“官方”截图方法如下:
()

如果你在使用iOS 7时需要转换或图形效果,我建议你不要实际创建图像。 图像可能很难生成(例如,在iPadRetina3rdGen上),并且会占用大量内存

启动iOS 7 Apple可以在UIView上提供更快的快照功能(顺便说一句,这也是他们在视图控制器、模糊效果等中实现自定义转换的方式),比创建实际图像快得多

在UIView上,您可以执行以下操作:
-(UIView*)快照视图后屏幕更新:(BOOL)后更新

或者,如果需要模糊视图的完整视图层次:


-(BOOL)drawViewHierarchyInRect:(CGRect)rect afterScreen更新:(BOOL)afterUpdates

精彩绝伦!它适用于iPad和iPhone。但是,您不需要在(CGRect)帧中传递参数。小麻烦。很高兴它帮了你…….是的,但如果你想在其他地方使用它,可以将此方法用作常用方法而不复制代码,只需传递你想要的rect大小……干杯,伙计;)