use*_*509 0 iphone objective-c uiimagepickercontroller uiimage ios
我正在开发一个简单的照片和视频捕获应用程序。该应用程序成功允许用户按下按钮即可拍摄照片或视频。但是,一旦完成拍摄照片或视频,它会提供2个选项:“重新拍摄”和“使用照片”或“使用视频”,具体取决于您使用的是哪个。
如果用户点击“重新拍摄”,则只是让他们重新拍摄新照片或视频,但是当用户点击“使用照片”或“使用视频”时,它什么也不做。该应用程序仅将它们带回主应用程序屏幕。
我对如何访问“使用照片” /“使用视频”按钮感到困惑,以便我可以编辑它的代码并将其保存到相机胶卷中。
这是我到目前为止的代码:
ViewController.h:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
@property UIImagePickerController * pickerController;
-(IBAction)showCameraUI;
@end
Run Code Online (Sandbox Code Playgroud)
ViewController.m:
#import "ViewController.h"
@interface ViewController () <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
NSLog(@"%ld", (long)UIImagePickerControllerSourceTypeCamera); }
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(IBAction)showCameraUI{
UIImagePickerController * pickerController = [[UIImagePickerController alloc]init];
pickerController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:pickerController animated:YES completion:NULL];
}
@end
Run Code Online (Sandbox Code Playgroud)
您可以使用的didFinishPickingMediaWithInfo委托UIImagePickerController来保存图像。
为此,您需要这样做:
-(IBAction)showCameraUI
{
UIImagePickerController * pickerController = [[UIImagePickerController alloc]init];
pickerController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
pickerController.delegate = self;
[self presentViewController:pickerController animated:YES completion:NULL];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// save photo
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage])
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil);
}
[picker dismissModalViewControllerAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)