사용자가 카메라 모드이고 사용자 조회수가 사진을 찍을 때 스크린 샷을 찍으려고합니다. 몇 가지 탭이있는 응용 프로그램이 있습니다. 그 중 하나에서 사용자는 카메라를 시작합니다. CameraOverViewController를 사용하여 [picker takePicture] 사진을 찍을 사용자 지정 단추를 만듭니다. 이 그림을 찍을 때 표준 방법을 사용하여 그림의 스크린 샷을 찍습니다. 이 모든 탭을 테스트 응용 프로그램에서 탭을 소개하자마자 검은 색 사각형 그냥 반환합니다. 나는 그것이 올바른 관점을 얻는 것과 관련이 있다는 것을 깨달았습니다. 나는 어떤 관점을 얻을지 알 수 없습니다.iPhone Take Screenshot of UIImagePickerController보기 - TAB 앱인 경우 항상 검은 색
// the view loaded in the tab view
@interface CameraTestViewController : UIViewController |UIImagePickerControllerDelegate, UINavigationControllerDelegate|
UIImagePickerController *picker
.m
- (void) setUpCamera : (id) sender {
picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.allowsEditing = NO;
picker.showsCameraControls = NO;
picker.wantsFullScreenLayout = YES;
picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform, CAMERA_SCALAR, CAMERA_SCALAR);
CameraOverViewController *createOverlay = [[CameraOverViewController alloc] initWithNibName:@"CameraOverViewController" bundle:nil];
[createOverlay mainView:self];
[picker setCameraOverlayView:createOverlay.view];
[self presentModalViewController:picker animated:YES];
[picker release];
}
- (void) snapThePicture {
[picker takePicture];
}
// TAKE SCREEN SHOT AS WELL. WORKS WITH NO TABS
- (void)imagePickerController:(UIImagePickerController *)pickerHere didFinishPickingMediaWithInfo:(NSDictionary *)info {
// tried many, many things. self.view.layer, etc
CGRect screenRect = CGRectMake(0, 0, 320, 480);
UIGraphicsBeginImageContext(screenRect.size);
[self.picker.view.layer renderInContext:UIGraphicsGetCurrentContext()];
// UIIMAGE ALWAYS A BLACK RECTANGLE OF RIGHT SIZE. WOULD WORK IF NOT IN TAB VIEW
UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
도움을 주시면 감사하겠습니다.
감사합니다.
'self.view.layer'를 사용하면 그림이 아닌 인터페이스 그림이 반환됩니다. 스크린 샷을 얻으려고 할 때까지보기를 닫지 않습니다. 탭보기가 아닐 때 작동합니다. –
아직 해결책이 있습니까? –