Что ж, давайте сначала разберемся с вещами
- UIImageView - это визуальный компонент для отображения UIImage (независимо от того, откуда они пришли)
- UIImagePickerController - это компонент, предоставленный Apple для получения изображений (либо из фотоальбома пользователя, либо непосредственно с камеры)
- Сохранение изображения означает сохранение его в локальной файловой системе
Теперь посмотрим, как оно на самом деле объединяется:
Сначала вы захотите создать UIImagePickerController, определить источник изображений и настроить делегата для обработки возвращаемого изображения.Что-то вроде этого:
// Always make sure to test if the source you want is available
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObjects:
(NSString *) kUTTypeImage,
nil];
imagePicker.allowsEditing = NO;
//Our image picker is ready - now let's show it to the user
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
}
Это откроет средство выбора изображений для пользователя (в частности, камеры - вы можете играть с типами и источниками мультимедиа - посмотрите справочник UIImagePickerController , чтобыпосмотрите, какие у вас есть варианты.
Теперь вам нужно позаботиться о том, чтобы получить изображение, полученное от пользователя, и это делается с помощью реализации метода делегата:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//All the info from the image - including the image itself - are stored in the info dictionary.
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
//Now - we have a reference to the image as a UIImage, so we can display it in a UIImageView or save it to disk or upload to a webserver. To show it - just set your imageView's image to the image
imageView.image = image;
}
}