您的位置:首页 > 移动开发 > IOS开发

iOS访问相册和相机

2015-12-20 20:11 330 查看

pragma mark — 第一步:声明三个属性

@property (nonatomic, strong) UIImageView *imageView;

@property (nonatomic, strong) UIButton *photo;

@property (nonatomic, strong) UIButton *camera;

pragma mark — 第二步:初始化界面

// 创建imageView来显示选取的图片
self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 50, 300, 300)];
self.imageView.layer.masksToBounds = YES;
self.imageView.backgroundColor = [UIColor orangeColor];
self.imageView.layer.cornerRadius = 20;
self.imageView.layer.borderWidth = 2;
[self addSubview:self.imageView];

// 创建photoButton来从相册中获取图片
self.photo = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.photo.frame = CGRectMake(50, 400, 100, 100);
[self.photo setBackgroundImage:[UIImage imageNamed:@"photo"] forState:UIControlStateNormal];
self.photo.layer.masksToBounds = YES;
self.photo.layer.cornerRadius = 50;
self.photo.layer.borderWidth = 3;
self.photo.layer.borderColor = [UIColor whiteColor].CGColor;
[self addSubview:self.photo];

// 创建cameraButton来调用相机拍照获取图片
self.camera = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.camera.frame = CGRectMake(250, 400, 100, 100);
[self.camera setBackgroundImage:[UIImage imageNamed:@"camera"] forState:UIControlStateNormal];
self.camera.layer.masksToBounds = YES;
self.camera.layer.cornerRadius = 50;
self.camera.layer.borderWidth = 3;
self.camera.layer.borderColor = [UIColor grayColor].CGColor;
[self addSubview:self.camera];


}

pragma mark — 第三步:遵循代理协议

@interface RootViewController ()

pragma mark — 第四步:声明图片选取器属性

@property (nonatomic, strong) UIImagePickerController *picker;

@end

@implementation RootViewController

- (void) loadView {

[super loadView];

self.rv = [[RootView alloc] initWithFrame:[UIScreen mainScreen].bounds];

self.view = self.rv;

}

- (void)viewDidLoad {

[super viewDidLoad];

pragma mark — 第五步:初始化选取器并设置代理

self.picker = [[UIImagePickerController alloc] init];
self.picker.delegate = self;


pragma mark — 第七步:添加响应事件

[self.rv.photo addTarget:self action:@selector(photoAction) forControlEvents:UIControlEventTouchUpInside];
[self.rv.camera addTarget:self action:@selector(cameraAction) forControlEvents:UIControlEventTouchUpInside];


}

pragma mark — 第八步:实现响应事件

// 从相册中选取

- (void)photoAction {

self.picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
self.picker.allowsEditing = NO;
[self presentViewController:self.picker animated:YES completion:nil];


}

// 调用相机拍照获取

- (void)cameraAction {

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

self.picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:self.picker animated:YES completion:nil];

} else {

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Caution" message:@"Do not find camera, please select from photo!" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
[alert addAction:okAction];
[self presentViewController:alert animated:YES completion:nil];

}


}

pragma mark — 第六步:实现协议中的方法

// 已经完成选取图片时执行

- (void)imagePickerController:(UIImagePickerController )picker didFinishPickingMediaWithInfo:(NSDictionary
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 相机 相册