废话不多说哦,边上代码边解释咯


首先我们来讲调用系统的相机咯


    
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = NO;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    [self presentViewController:picker animated:YES completion:nil];


那么这个时候,我们还需要判断一下相关的权限,因为我们可以在手机的设置里面去更改当前app是否允许打开相机等操作


 
if(authStatus == ALAuthorizationStatusRestricted || authStatus == ALAuthorizationStatusDenied){
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:NTC_CAMERA_ALERT_MESSAGE delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
        [alertView show];
    }



接下来我们会走两个代理方法,就是下面这两个了,但是要导入2个头文件的Delegate哦


 
- (void)p_w_picpathPickerControllerDidCancel:(UIImagePickerController *)picker {
    [picker dismissViewControllerAnimated:YES completion:nil];
}
 
- (void)p_w_picpathPickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage* p_w_picpath = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}


第一个方法就是取消,这个没什么好说的

第二个方法是拍照完成后,点击使用照片后调用的方法

这个时候我们需要在里面取出图片,然后做相应的操作

这就是相机的简单使用咯



接下来是相册


    
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = NO;
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentViewController:picker animated:YES completion:nil];


其实跟相机的调用都差不多,只不过改一个属性而已

当然了,我们也还是要判断一下权限的哦


 
ALAuthorizationStatus author = [ALAssetsLibrary authorizationStatus];
    if(author == ALAuthorizationStatusDenied || author == ALAuthorizationStatusRestricted) {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:NTC_PHOTOS_ALERT_MESSAGE delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
        [alertView show];
    } else {
        //可以使用
    }


然后还是走的之前的两个Delegate方法



好啦,这就是相册与拍照的最基本的使用了哦