如何创build具有全屏图像ios的自定义UIImagePickerController

我有一个简单的UIImagePickerController,它将使用相机来拍照,但有一些事情,我希望它做的:

  • 有一个自定义相机用户界面
  • 采取全屏而不是480×640(如果在4英寸的电话)

这里是我的代码显示UIImagePickerController:

- (IBAction)pick:(id)sender { NSLog(@"abc"); picker = [[UIImagePickerController alloc] init]; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { [picker setSourceType:UIImagePickerControllerSourceTypeCamera]; } else { [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; } [picker setDelegate:self]; [self presentViewController:picker animated:YES completion:nil]; } 

这是为什么当图像被采取:

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [self dismissViewControllerAnimated:YES completion:nil]; UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; [imageView setImage:image]; } 

我该怎么做呢?

谢谢

对于第一个重点,我想你可以使用UIImagePickerController对象的cameraOverlayView属性来将你的自定义UI添加到select器的默认界面上:

 - (IBAction)pick:(id)sender { NSLog(@"abc"); picker = [[UIImagePickerController alloc] init]; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { [picker setSourceType:UIImagePickerControllerSourceTypeCamera]; } else { [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; } // Add here your custom UI here [picker setCameraOverlayView:self.customCameraOverlayView]; [picker setDelegate:self]; [self presentViewController:picker animated:YES completion:nil]; } 

编辑

我已经testing了UIImagePickerController ,它返回的是全维的图像(PixelXDimension和PixelYDimension):

  UIImagePickerControllerMediaMetadata = { DPIHeight = 72; DPIWidth = 72; Orientation = 6; "{Exif}" = { ApertureValue = "2.526068811667588"; BrightnessValue = "-0.5779073354035674"; ColorSpace = 1; DateTimeDigitized = "2013:04:07 22:30:03"; DateTimeOriginal = "2013:04:07 22:30:03"; ExposureMode = 0; ExposureProgram = 2; ExposureTime = "0.05882352941176471"; FNumber = "2.4"; Flash = 24; FocalLenIn35mmFilm = 35; FocalLength = "4.28"; ISOSpeedRatings = ( 800 ); MeteringMode = 3; PixelXDimension = 3264; PixelYDimension = 2448; SceneType = 1; SensingMethod = 2; ShutterSpeedValue = "4.058893689053568"; SubjectArea = ( 1874, 1478, 610, 612 ); WhiteBalance = 0; }; "{TIFF}" = { DateTime = "2013:04:07 22:30:03"; Make = Apple; Model = "iPhone 4S"; Software = "6.1.3"; XResolution = 72; YResolution = 72; }; }; 

编辑

你也可以设置你的图像查看内容模式来调整和适应容器视图:

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [self dismissViewControllerAnimated:YES completion:nil]; UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; [imageView setContentMode:UIViewContentModeScaleAspectFill]; [imageView setImage:image]; } 

然后根据需要在您的视图控制器中使用auto layoutauto sizing以适应设备屏幕(4英寸或不是4英寸)。