【ios11.4.1】iOS 调用系统相机和相册的方法

更新时间:2020-04-18    来源:ios    手机版     字体:

【www.bbyears.com--ios】

#import “CameraViewController.h”

@interface CameraViewController ()

@end

@implementation CameraViewController

– (void)viewDidLoad {

[super viewDidLoad];

NSArray *arr = @[@”调用相机”,@”调用图片库”,@”打开闪关灯”,@”关闭闪光灯”];

 

for (int i = 0; i < 4; i++) {

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

button.frame = CGRectMake(100, (100 + 10) * i + 50, 100, 100);

[button setTitle:arr[i] forState:(UIControlStateNormal)];

[button setTitleColor:[UIColor blackColor] forState:(UIControlStateNormal)];

if (i == 0) {

[button addTarget:self action:@selector(addCarema) forControlEvents:(UIControlEventTouchUpInside)];

}else if (i == 1)

{

[button addTarget:self action:@selector(openPicLibrary) forControlEvents:(UIControlEventTouchUpInside)];

}else if (i == 2)

{

[button addTarget:self action:@selector(openFlashlight) forControlEvents:(UIControlEventTouchUpInside)];

}

else if (i == 3)

{

[button addTarget:self action:@selector(closeFlashlight) forControlEvents:(UIControlEventTouchUpInside)];

}

[self.view addSubview:button];

}

 

// Do any additional setup after loading the view.

}

-(void)addCarema

{

//判断是否可以打开相机,模拟器无法使用此功能

if ([UIImagePickerController isSourceTypeAvailable:(UIImagePickerControllerSourceTypeCamera)]) {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

picker.allowsEditing = YES; //是否可编辑

//摄像头

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

[self presentViewController:picker animated:YES completion:nil];

}else

{

//如果没有提示用户

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:@”你没有摄像头” delegate:nil cancelButtonTitle:@”Drat!” otherButtonTitles:nil, nil];

[alert show];

}

}

//拍摄完成后要执行的方法

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

//得到图片

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

//图片存入相册

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);

[self dismissViewControllerAnimated:YES completion:nil];

}

//点击Cancel按钮后执行方法

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker

{

[self dismissViewControllerAnimated:YES completion:nil];

}

-(void)openPicLibrary

{

//相册是可以用模拟器打开的

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

picker.allowsEditing = YES;

 

//打开相册选择照片

picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

[self presentViewController:picker animated:YES completion:nil];

}else

{

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:@”你没有摄像头” delegate:nil cancelButtonTitle:@”Drat!” otherButtonTitles:nil, nil];

[alert show];

}

}

-(void)openFlashlight

{

 

 

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

if ([device hasTorch]) {

[device lockForConfiguration:nil];

 

[device setTorchMode:AVCaptureTorchModeOff];

 

[device unlockForConfiguration];

}

 

}

-(void)closeFlashlight

{

[self.AVSession stopRunning];

}

– (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/*

#pragma mark – Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation

– (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// Get the new view controller using [segue destinationViewController].

// Pass the selected object to the new view controller.

}

*/

@end

本文来源:http://www.bbyears.com/shoujikaifa/92768.html

热门标签

更多>>

本类排行