브렌트의 대답에 확장하려면, 스크린 샷을 잡아와 PNG로 문서 디렉토리라는 screenshot.png 그것을 저장합니다 다음 코드를
UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
UIGraphicsBeginImageContext(screenWindow.frame.size);
[screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *screenshotPNG = UIImagePNGRepresentation(screenshot);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSError *error = nil;
[screenshotPNG writeToFile:[documentsDirectory stringByAppendingPathComponent:@"screenshot.png"] options:NSAtomicWrite error:&error];
가 떠날 것 같은이 조금 원유입니다 제목 표시 줄의 화면 위쪽에 빈 자리가 있으며 CAEAGLLayers의 콘텐츠를 가져 오는 것으로 나타나지 않습니다.
또한 표준 mailto : // URL 구성과 그 뒤에 openURL을 사용하여 MIME 인코딩 첨부 파일을 보낼 수 있다고 생각하지 않습니다. 어쩌면 3.0 SDK가이 문제를 해결할 수 있을지 모르겠지만 아직 해결하지 못했습니다. 응용 프로그램 내에서 직접 메시지를 보내려면 sksmtpmessage과 같은 것을 사용해야 할 수도 있습니다.
당신이 UIApplication의 윈도우 배열을 반복하여 (keyWindow만이 아닌) 모두 렌더링하면 상태 표시 줄이 그려집니다. – benzado