1
我遵循使用UIImagePickerController
自定义覆盖图的apple docs方法。现在它非常简单,我只在覆盖视图上有一个按钮。该按钮的目标为takePic
。与此唯一的问题是,因为我不使用默认的相机控制,该imagePickerController
委托方法永远不会获取图像后调用,使用UIImagePickerController自定义覆盖图捕获和保存图片
- (void) imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
我觉得这种方法通常被称为上的默认覆盖用户捕获后一张图片并点击“选择照片”。但是在这个叠加层中,我只需要一个“拍照”按钮来拍摄并保存照片。
这是我的代码:
-(void)takePic
{
[cameraUI takePicture];
NSLog(@"take pic called");
}
// For responding to the user accepting a newly-captured picture or movie
- (void) imagePickerController: (UIImagePickerController *) picker
didFinishPickingMediaWithInfo: (NSDictionary *) info {
NSLog(@"Finished picking media");
NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
UIImage *originalImage, *imageToSave;
// Handle a still image capture
if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0)
== kCFCompareEqualTo) {
originalImage = (UIImage *) [info objectForKey:
UIImagePickerControllerOriginalImage];
imageToSave = originalImage;
NSLog(@"image Saved");
// Save the new image (original or edited) to the Camera Roll
UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil);
}
// Handle a movie capture
if (CFStringCompare ((CFStringRef) mediaType, kUTTypeMovie, 0)
== kCFCompareEqualTo) {
NSString *moviePath = [[info objectForKey:
UIImagePickerControllerMediaURL] path];
if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) {
UISaveVideoAtPathToSavedPhotosAlbum (
moviePath, nil, nil, nil);
}
}
[[picker parentViewController] dismissModalViewControllerAnimated: YES];
}
正如我前面提到的,imagePickerController:didFinishPickingMediaWithInfo:
不会被调用。如何将照片保存到相机胶卷?
您是否设置了代表? – 2015-01-31 19:33:24
是的,我把'cameraUI'的代表设置为self(ViewController)。 – SaleenS7 2015-01-31 19:46:24