Опитвам се да постигна същото поведение като в приложението Снимки, когато едно изображение е отворено на цял екран; т.е. искам да мога да превъртам между различните си изображения и също така да щипна, за да увелича някое от тях. Както в приложението Снимки, след като увелича определено изображение, бих искал да мога да превъртам между различните изображения в моята галерия.
Ситуацията ми е следната: имам UICollectionView
, персонализиран UICollectionViewFlowLayout
, където itemSize е зададен да бъде размера на екрана, и персонализиран UICollectionViewCell
, който има UIImageView
. Това работи добре при превъртане през различните снимки, проблемът е при превъртането в тях.
Първият подход, който опитах, е този, изобразен в сесията на WWDC 2012: „Разширена колекция Изгледи и изграждане на персонализирани оформления. Ефектът, който се получава с този подход, е правилното мащабиране на клетката, но след това тя ще се припокрива с клетките до нея, създавайки нежелан ефект.
Вторият подход е като този, предложен в сесията на WWDC 2010: „Проектиране на приложения с превъртане Изгледи'. Въпреки това не съм напълно сигурен, че този подход ще работи с UICollectionView вместо UIScrollView + подизгледи. Задавам моя контролер за изглед като UIScrollViewDelegate
и замествам viewForZoomingInScrollView:
, където връщам UIImageView на видимата клетка в тази дадена точка. Нищо не се случва, ако го направя. Също така се опитах да върна клетката и в този случай цялото оформление на UICollectionView е объркано. Разгледах примерния проект, съставен от Apple (PhotoScroller), който успешно прилага това, което искам, но там те просто имат UIImageView
като подизглед на UIScrollView
.
Мисля, че за да внедря поведението на приложението Photos с UICollectionView
, трябва да направя това, като използвам първия подход и променям атрибутите на оформлението на другите клетки в изгледа на моята колекция, а не само на тази, която е увеличена.
Това ми звучи като решение на доста ниско ниво и се чудех дали някой знае по-добър подход към този проблем.