Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 113

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

} else {

NSLog(@"The camera does not support shooting videos.");

}


self.window = [[UIWindow alloc] initWithFrame:

[[UIScreen mainScreen] bounds]];


self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}


Π’ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ запуска Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния Π½Π° Π½ΠΎΠ²ΠΎΠΌ iPhone:


The front camera is available. // ΠΏΠ΅Ρ€Π΅Π΄Π½ΡΡ ΠΊΠ°ΠΌΠ΅Ρ€Π° доступна

The front camera is not equipped with a flash // ΠΏΠ΅Ρ€Π΅Π΄Π½ΡΡ ΠΊΠ°ΠΌΠ΅Ρ€Π°

// Π½Π΅ оснащСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π²ΡΠΏΡ‹ΡˆΠΊΠΈ

The rear camera is available. // Π·Π°Π΄Π½ΡΡ ΠΊΠ°ΠΌΠ΅Ρ€Π° доступна

The rear camera is equipped with a flash // Π·Π°Π΄Π½ΡΡ ΠΊΠ°ΠΌΠ΅Ρ€Π° оснащСна

, // Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Π²ΡΠΏΡ‹ΡˆΠΊΠΈ

The camera supports taking photos. // ΠΊΠ°ΠΌΠ΅Ρ€Π° позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ

, // Ρ„отоснимки

The camera supports shooting videos. // ΠΊΠ°ΠΌΠ΅Ρ€Π° позволяСт

// Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ

Π’ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ запускС Π½Π° симуляторС iPhone:

The front camera is not available. // ΠΏΠ΅Ρ€Π΅Π΄Π½ΡΡ ΠΊΠ°ΠΌΠ΅Ρ€Π° нСдоступна

The rear camera is not available. // Π·Π°Π΄Π½ΡΡ ΠΊΠ°ΠΌΠ΅Ρ€Π° нСдоступна

The camera does not support taking photos // ΠΊΠ°ΠΌΠ΅Ρ€Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΡŠΠ΅ΠΌΠΊΡƒ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΉ

The camera does not support shooting videos // ΠΊΠ°ΠΌΠ΅Ρ€Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΡŠΠ΅ΠΌΠΊΡƒ Π²ΠΈΠ΄Π΅ΠΎ

13.2. Π€ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ВрСбуСтся ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ снимок (фотография выполняСтся ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ устройства). ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сдСлаСт снимок, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этой Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ.

РСшСниС

Π˜Π½ΡΡ‚Π°Π½Ρ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° UIImagePickerController ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ Π²ΠΈΠ΄Π°. Π’ΠΎΡ‚ объявлСниС этого ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π°:


#import Β«ViewController.hΒ»

#import <MobileCoreServices/MobileCoreServices.h>


@interface ViewController ()<UIImagePickerControllerDelegate,

UINavigationControllerDelegate>


@end


@implementation ViewController


<# ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ вашСго ΠΊΠΎΠ΄Π° находится здСсь #>


Π”Π΅Π»Π΅Π³Π°Ρ‚ экзСмпляра UIImagePickerController Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ UINavigationControllerDelegate ΠΈ UIImagePickerControllerDelegate. Если Π²Ρ‹ Π·Π°Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π². h-Ρ„Π°ΠΉΠ» вашСго ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-Π΄Π΅Π»Π΅Π³Π°Ρ‚Π°, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ прСдупрСТдСния ΠΎΡ‚ компилятора ΠΏΡ€ΠΈ присвоСнии значСния Π΄Π΅Π»Π΅Π³Π°Ρ‚Π½ΠΎΠΌΡƒ свойству ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ экзСмпляра UIImagePickerController ΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ соотвСтствуСт явно ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ UIImagePickerControllerDelegate ΠΈ UINavigationControllerDelegate, Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π² этих ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ…. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ я ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ Β«ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΒ» компилятору, Ρ‡Ρ‚ΠΎ фактичСски ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-Π΄Π΅Π»Π΅Π³Π°Ρ‚ соотвСтствуСт Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ, β€” Ρ‚Π°ΠΊ Π²Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚Π΅ΡΡŒ ΠΎΡ‚ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ компилятора.

Π’ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π° попытаСмся ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ для Π²Ρ‹Π±ΠΎΡ€Π° изобраТСния Π² Π²ΠΈΠ΄Π΅ модального ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


β€” (void)viewDidAppear:(BOOL)animated{

[super viewDidAppear: animated];


static BOOL beenHereBefore = NO;


if (beenHereBefore){

/* ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌ элСмСнт для Π²Ρ‹Π±ΠΎΡ€Π° Π΄Π°Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ вызываСтся

ΠΌΠ΅Ρ‚ΠΎΠ΄ viewDidAppear:, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²ΠΈΠ΄Π°

нашСго ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π²ΠΈΠ΄Π° */

return;

} else {

beenHereBefore = YES;

}


if ([self isCameraAvailable] &&

[self doesCameraSupportTakingPhotos]){


UIImagePickerController *controller =

[[UIImagePickerController alloc] init];


controller.sourceType = UIImagePickerControllerSourceTypeCamera;


NSString *requiredMediaType = (__bridge NSString *)kUTTypeImage;

controller.mediaTypes = [[NSArray alloc]

initWithObjects: requiredMediaType, nil];


controller.allowsEditing = YES;

controller.delegate = self;


[self.navigationController presentModalViewController: controller

animated: YES];


} else {

NSLog(@"Camera is not available.");

}

}

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ isCameraAvailable ΠΈ doesCameraSupportTakingPhotos. Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрСны Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 13.1.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ прСдоставим ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ снимки, ΠΏΠΎΠ»ΡŒΠ·ΡƒΡΡΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’Ρ‹, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ для Π΄Π΅Π»Π΅Π³Π°Ρ‚Π½ΠΎΠ³ΠΎ свойства инструмСнта Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΡ‹ Π·Π°Π΄Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ self, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ относится ΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Π²ΠΈΠ΄Π°. ΠŸΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ UIImagePickerControllerDelegate:


β€” (void) imagePickerController:(UIImagePickerController *)picker

didFinishPickingMediaWithInfo:(NSDictionary *)info{


NSLog(@"Picker returned successfully.");

NSLog(@"%@", info);


NSString *mediaType = [info objectForKey:

UIImagePickerControllerMediaType];


if ([mediaType isEqualToString:(__bridge NSString *)kUTTypeMovie]){


NSURL *urlOfVideo =

[info objectForKey: UIImagePickerControllerMediaURL];

NSLog(@"Video URL = %@", urlOfVideo);


}


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

/* ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ касаСтся

Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π½Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠΎΠ². */


NSDictionary *metadata =

[info objectForKey:

UIImagePickerControllerMediaMetadata];


UIImage *theImage =

[info objectForKey:

UIImagePickerControllerOriginalImage];


NSLog(@"Image Metadata = %@", metadata);

NSLog(@"Image = %@", theImage);


}


[picker dismissModalViewControllerAnimated: YES];


}


β€” (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{


NSLog(@"Picker was cancelled");

[picker dismissModalViewControllerAnimated: YES];


}

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠΌ инструмСнта для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½Ρ‹Ρ… аспСктов. Π”Π²Π° Π΄Π΅Π»Π΅Π³Π°Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠœΠ΅Ρ‚ΠΎΠ΄ imagePickerController: didFinishPickingMediaWithInfo: вызываСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с инструмСнтом Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ снимок ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ† Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ). Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠ΅Ρ‚ΠΎΠ΄ imagePickerControllerDidCancel: вызываСтся Π² случаС, ΠΊΠΎΠ³Π΄Π° опСрация с инструмСнтом Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ отмСняСтся.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° imagePickerController: didFinishPickingMediaWithInfo: содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚ΠΎΠΌ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» отснят ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ это ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Π΅. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ didFinishPickingMediaWithInfo β€” это ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Ρ‹Π»ΠΎ отснято Π² инструмСнтС Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ плюс ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ отснятого ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π Π°Π±ΠΎΡ‚Ρƒ Π² этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ слСдуСт Π½Π°Ρ‡Π°Ρ‚ΡŒ со считывания значСния ΠΊΠ»ΡŽΡ‡Π° UIImagePickerControllerMediaType ΠΈΠ· этого словаря. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° прСдставляСт собой экзСмпляр NSString ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

β€’ kUTTypeImage β€” фотография, сдСланная ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ;

β€’ kUTTypeMovie β€” Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊ, отснятый ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ.

ЗначСния kUTTypeImage ΠΈ kUTTypeMovie доступны Π²ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ΅ Mobile Core Services ΠΈ относятся ΠΊ Ρ‚ΠΈΠΏΡƒ CFStringRef. ΠŸΡ€ΠΈ нСобходимости ΠΌΠΎΠΆΠ½ΠΎ просто привСсти Ρ‚ΠΈΠΏ этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊ NSString.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² Ρ‚ΠΈΠΏ рСсурса, созданного ΠΊΠ°ΠΌΠ΅Ρ€ΠΎΠΉ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠ·Π½Π°Π², ΠΈΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ ΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠ΅), ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойствам этого рСсурса, вновь воспользовавшись ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ словаря didFinishPickingMediaWithInfo.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с изобраТСниями (kUTTypeImage) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠ»ΡŽΡ‡Π°ΠΌ:

β€’ UIImagePickerControllerMediaMetadata β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ ΠΏΠΎ этому ΠΊΠ»ΡŽΡ‡Ρƒ, являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° NSDictionary. Π’ этом словарС содСрТится масса ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, отснятом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ обсуТдСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, содСрТащихся Π² этом словарС, Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой Π³Π»Π°Π²Ρ‹;

β€’ UIImagePickerControllerOriginalImage β€” ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΌ ΠΏΠΎ этому ΠΊΠ»ΡŽΡ‡Ρƒ, являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° UIImage. Π’ Π½Π΅ΠΌ содСрТится ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, отснятоС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ;

β€’ UIImagePickerControllerCropRect β€” Ссли Π²Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ рСдактирования (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства allowsEditing ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° UIImagePickerController), Ρ‚ΠΎ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ этого ΠΊΠ»ΡŽΡ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±Ρ‹Π»Π° сдСлана ΠΎΠ±Ρ€Π΅Π·ΠΊΠ°;

β€’ UIImagePickerControllerEditedImage β€” Ссли Π²Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ рСдактирования (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства allowsEditing ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° UIImagePickerController), Ρ‚ΠΎ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ этого ΠΊΠ»ΡŽΡ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅, с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ).


Для Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠΎΠ² (kUTTypeMovie), отснятых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΠΊΠ»ΡŽΡ‡Ρƒ UIImagePickerControllerMediaURL Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ словаря didFinishPickingMediaWithInfo Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ imagePickerController: didFinishPickingMediaWithInfo:. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΊΠ»ΡŽΡ‡Π° прСдставляСт собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° NSURL, содСрТащий URL Π²ΠΈΠ΄Π΅ΠΎΡ€ΠΎΠ»ΠΈΠΊΠ°, отснятого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ссылку Π½Π° экзСмпляр UIImage, отснятый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот экзСмпляр Π² своСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π€ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, снятыС Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ для снимков Ρ„ΠΎΡ‚ΠΎΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ (Camera Roll).