در صدر ، ما تابع “Add Photo” از view controller مرتبط با New Recipe را طراحی خواهیم کرد. طراحی اپلیکیشن در مشهد زمانی که عمل بر روی تصویر “Add Photo” ضربه میزند ، نرمافزار photo library را برای گزینش کردن تصویر امر پخت ، بالا خواهد آورد. iOS SDK کلاس UIImagePickerController را برای دریافت کردن عکس از دوربین (UIImagePickerController) و دسترسی به photo library را آماده می نماید. بیایید ، ببینیم که چهطور برنامه ، media browser را بالا میآورد. تولید یک Media browser
تعریفوتمجید KUTTypeImage ، که بعداً از آن به کارگیری خواهیم کرد ، در کادر ورک MobileCoreServices ، وجود دارااست. به این ترتیب ، این کادر ورک را به پروژه Xcode خویش اضافه میکنیم و عبارت import پایین را ، در اولِ پوشه NewRecipeViewController.m اضافه میکنیم:
#import
درپی ، کد ذیل را برای تولید مشی “showPhotoLibrary:” ، اضافه میکنیم:
- (void)showPhotoLibary
{
if (([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum] == NO)) {
return;
}
UIImagePickerController *mediaUI = [[UIImagePickerController alloc] init];
mediaUI.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
// Displays saved pictures from the Camera Roll album.
mediaUI.mediaTypes = @[(NSString*)kUTTypeImage];
// Hides the controls for moving & scaling pictures
mediaUI.allowsEditing = NO;
mediaUI.delegate = self;
[self.navigationController presentModalViewController: mediaUI animated: YES];
}
در کد بالا ، ما آغاز ، image picker را تنظیمات کرده و source type را به UIImagePickerControllerSourceTypePhotoLibrary تهیه میکنیم. این شغل ، یک media browser را اکران میدهد که دسترسی به گالری تصاویر دستگاه و مثلا ، امکان دسترسی به دوربین را نیز مهیا می سازد. به صورت پیش فرض ، photo library ، دربرگیرنده عکس و ویدیوهای ذخیره گردیده است. دراین مورد ، نرم افزار Recipe ما ، صرفا به استفاده کننده اذن گزینش تصویر امر پخت از کتابخانه را خواهد اعطا کرد. براین اساس ، نوع رسانه را به kUTTypeImage ، محصور میکنیم. مابقی کد ، خویش توضیح (self explanatory) میباشد.
زمانی که مخاطب ، “AddPhoto” را ضربه میزند ، که اولی ستون static table view میباشد ، اسلوب “”showPhotoLibrary: را برای اکران media browser ، فراخوانی میکنیم. بدین ترتیب ، کد ذیل را در به عبارتی فولدر طراحی گردیده، اضافه میکنیم:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0) {
[self showPhotoLibary];
}
}
در شرایطی که نرمافزار را اعمال کنیم و تلاش کنیم یک فرمان پخت نو را اضافه کنیم ، نرمافزار ، تصاویر را برای گزینش کردن نماد میدهد. با این هم اکنون ، نرم افزار به تعیین ما ، واکنش علامت نمی دهد ؛ چون ، پروتکل UIImagePickerControllerDelegate ، طراحی نشده میباشد.
نکته : در صورتیکه از مشابه ساز iPhone برای آزمایش اپلیکیشن به کارگیری میکنید ، photo library احتمالاً خالی میباشد. افزودن عکس به گالری تصاویر شغل بی آلایش ای میباشد. صرفا کافی میباشد هر یک از تصاویر را که گرایش داریم ، از Finder به مشابه ساز درگ نماییم. با این عمل ، تصویر موردنظر به صورت خود کار در Safari نمایش داده می شود. به آسانی روی عکس ضربه زده و نگه میداریم تا در درون photo library ذخیره گردد.
تنظیمات نماینده UIImagePickerController
برای واکنش نشانه دادن به گزینش مخاطب ، ما می بایست یک نماینده طراحی کنیم که بر پایه ی با پروتکل های UIImagePickerControllerDelegate و UINavigationControllerDelegate باشد. واضح میباشد که NewRecipeViewController می بایست تحت عنوان شیء نماینده تهیه و تنظیم خواهد شد. در فولدر NewRecipeViewController.h رابط کاربری را بر طبق کد تحت تغییر و تحول میدهیم:
@interface NewRecipeViewController : UITableViewController