Камера iPhone и Выбор изображения - PullRequest
0 голосов
/ 13 сентября 2009

Я нашел много информации об использовании UIImagePickerController, чтобы позволить пользователю выбрать нужное изображение из данных приложения Photos. Мне интересно, как я могу создать такой же эффект на 3.0, так как кажется, что большая часть старого кода больше не работает. Кроме того, я хотел бы, чтобы пользователь мог сделать новый снимок из этого же всплывающего окна.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 13 сентября 2009

Работает в 3.0, так же, как и раньше; Я не верю, что произошли какие-либо изменения. Я просто выделяю / инициализирую UIImagePickerController и передаю его в presentModalViewController, например так:

- (void) chooseImageFromLibrary {
    if( ![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary] ) return;

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.delegate = self;
    imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePickerController.allowsImageEditing = YES;
    [self presentModalViewController:imagePickerController animated:YES];
}

- (void) chooseImageFromCamera {
    if( ![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] ) return;

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.delegate = self;
    imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePickerController.allowsImageEditing = YES;
    [self presentModalViewController:imagePickerController animated:YES];
}

Реализуйте также методы делегата:

- (void)imagePickerController:(UIImagePickerController *)picker 
        didFinishPickingImage:(UIImage *)image 
                  editingInfo:(NSDictionary *)editingInfo {
    // Do something with the image here.

    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
}
...