如何创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 layout
或auto sizing
以适应设备屏幕(4英寸或不是4英寸)。