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