در گردهمایی گذشته ، درباره ی اصول مرتبط با UICollectionView ، کلام کردیم و شیوه اکران گزینه ها ، در چینش grid را نشانه دادیم. تقسیم امر پخت ها ، به تعدادی نصیب متعدد ، میتواند عمل جذابی باشد. نصیب نخستین ، مشتمل بر فرمان پخت های مرتبط با ناهار/شام و قسمت دیگر ، مشمول امر پخت هایی که مرتبط با آب میوه ها و دسر ها میباشند. طراحی اپلیکیشن در مشهد همانگونه که تا قبل از اینً آموخته اید ، برای هر collection view می بایست data source object ، داشته باشیم ، تا بتواند محتوای قابل اکران در collection view ، را تأمین کند. مسئولیت data source ، به دست آوردن موردها پایین برای collection view ، است:
تعداد بخشها در collection view
تعداد گزینه در هر قسمت.
Cell view برای یک داده ی خاص.
نرم افزار امر پخت معمولی ای که در گردهمایی قبلی توسعه و گسترش دادیم ، صرفا یک قسمت دارااست. دراین فراگیری ، قصد داریم جستجو در collection view را ادامه داده و شیوه مجموعه بندی مورد ها ، در قسمت های متفاوت را به شما آرم دهیم. خلال این ، خواهید آموخت که به چه شکل view مرتبط با Header و Footer را به collection view ، اضافه فرمائید.
در صورتیکه هنوز ، یادگرفتن گرد هم آیی گذشته را تحقیق ننموده اید ، سفارش میشود که به طبعً ، آن را پژوهش فرمائید.
تقسیم امر پخت ها به دو قسمت در UICollectionView
در برنامه بی آلایش امر پخت ، RecipeCollectionViewController ، اصولا data source object مرتبط با collection view است. برای تقسیم نمودن فرمان پخت به دو نصیب ، یک سری آیتم تغییرات وجود دارا هستند ، که می بایست آنهارا جاری ساختن دهیم.
آرایه recipeImages ، اسم های مرتبط با تصویر تک تک امر پخت ها را ذخیره می نماید. از آن جایی که ما رغبت داریم ، فرمان پخت ها را به دو مجموعه ، تقسیم نماییم ، بایستی کد خویش را تغییر تحول دهیم و از آرایه های تو در تو (nested arrays) ، برای ذخیره سازی دسته های گوناگون امر پخت ها ، به کارگیری نماییم. عبارت آرایه های تو در تو ، ممکن میباشد برای بعضی از اشخاص که تجارب متعددی در اپلیکیشن نویسی ندارند، تازگی داشته باشد. صورت ذیل ، طریق به کار گیری ما از آرایه های تو در تورا برای ذخیره سازی اطلاعات ، نماد میدهد. مجموعه اولیه ، دربرگیرنده تصاویری از غذاهای اساسی و مجموعه دیگر ، تصاویر مرتبط با آب میوه ها و دسرها را علامت میدهد. آرایه سطح اولیه (یعنی recipeImages ) مشتمل بر دو آرایه میباشد ، که نشانه دهنده مناطق است. آرایه هر قسمت ، دربردارنده گزینه های داده ای (یعنی اسم تصویر امر پخت) برای هر قسمت خاص ، است.
به قسمت source code ، بر میگردیم. در فولدر RecipeCollectionViewController.m ، مقداردهی آرایه “recipeImages” ، در درون مشی viewDidLoad ، را مبتنی بر ذیل ، تغییرو تحول میدهیم:
- (void)viewDidLoad
{
[super viewDidLoad];
// Initialize recipe image array
NSArray *mainDishImages = [NSArray arrayWithObjects:@\"egg_benedict.jpg\", @\"full_breakfast.jpg\", @\"ham_and_cheese_panini.jpg\", @\"ham_and_egg_sandwich.jpg\", @\"hamburger.jpg\", @\"instant_noodle_with_egg.jpg\", @\"japanese_noodle_with_pork.jpg\", @\"mushroom_risotto.jpg\", @\"noodle_with_bbq_pork.jpg\", @\"thai_shrimp_cake.jpg\", @\"vegetable_curry.jpg\", nil];
NSArray *drinkDessertImages = [NSArray arrayWithObjects:@\"angry_birds_cake.jpg\", @\"creme_brelee.jpg\", @\"green_tea.jpg\", @\"starbucks_coffee.jpg\", @\"white_chocolate_donut.jpg\", nil];
recipeImages = [NSArray arrayWithObjects:mainDishImages, drinkDessertImages, nil];
}