项目工程中 ios 相册和相机

- (void)selectAvatar:(id)sender {

    // show action sheet

    UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:nil

                                                             delegate:self

                                                    cancelButtonTitle:@"取消"

                                               destructiveButtonTitle:nil

                                                    otherButtonTitles:@"拍照", @"从相册选择照片", nil];

    [actionSheet showInView:self.view];

}


#pragma mark action sheet delegate


// Called when a button is clicked. The view will be automatically dismissed after this call returns

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:@"拍照"]) {

        // 拍照

        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

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

            imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

            imagePicker.delegate = self;

            imagePicker.allowsEditing = YES;//正方形截取框

            

            [self presentViewController:imagePicker

                                animated:YES

                              completion:nil];

            self.imagePicker = imagePicker;//强持有

        }

        else {

            UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@""

                                                                message:@"当前设备不支持摄像头"

                                                               delegate:self

                                                      cancelButtonTitle:@"知道了"

                                                      otherButtonTitles:nil];

            [alertView show];

        }

    } else if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:@"从相册选择照片"]) {

        if ([UIImagePickerController isSourceTypeAvailable:

             UIImagePickerControllerSourceTypePhotoLibrary])

        {

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

            imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

            imagePicker.delegate = self;

            imagePicker.allowsEditing = YES;

            

            [self presentViewController:imagePicker

                               animated:YES

                             completion:nil];

            self.imagePicker = imagePicker;

        }

    } else if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:EPIVC_ACTIONSHEET_GIVEUP_BTN_TITLE]) {//离开编辑

        [self moveBackToPreviousVC];

    }

}



#pragma mark - image picker

- (void)imagePickerController:(UIImagePickerController *)picker

didFinishPickingMediaWithInfo:(NSDictionary *)info

{

    if (UIImagePickerControllerSourceTypePhotoLibrary == picker.sourceType) {

        NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

        if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {

            UIImage *photoEdited = [info objectForKey:UIImagePickerControllerEditedImage];

            self.userImgView.image = photoEdited;

            isPhotoChanged = YES;

            [self setRightBarItemsEnabled:YES];

        }

        [self dismissViewControllerAnimated:YES completion:nil];

    } else {//相机当场拍的照片

        UIImage *photo = [info objectForKey:UIImagePickerControllerEditedImage];

        photo = [photo imageAfterFixOrientation];

        self.userImgView.image = photo;

        [self setRightBarItemsEnabled:YES];

        isPhotoChanged = YES;

//保存到本地相册

        ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];

        [library writeImageToSavedPhotosAlbum:[photo CGImage]

                                  orientation:(ALAssetOrientation)[photo imageOrientation]

                              completionBlock:nil];

        

        [self dismissViewControllerAnimated:YES completion:nil];

    }

    self.imagePicker = nil;

}



你可能感兴趣的:(IOS学习积累)