2013-06-27 2 views
0

У меня есть UICollectionView с использованием макета потока.Переход между двумя UICollectionViewCells

Первоначально он показывает небольшие ячейки, примерно 5 х 5 на экране iPad.

То, что я хочу сделать, плавно изменяет размер ячейки почти полного экрана, с ячейкой с большим, немного отличающимся расположением.

---------------- 
| |---| |---| | 
| | | | | | 
| |---| |---| | 
|    | 
| |---| |---| | 
| | | | | | 
| |---| |---| | 
---------------- 

transitions to.. 
---------------- 
| |---------| | 
| |   | | 
| |   | | 
| |   | | 
| |---------| | 
|    | 
| |---------| | 
---------------- 

В настоящее время я использую использовать булевы showLarge, который я установлен в YES, когда пользователь нажимает (didSelectItemAtIndexPath)

Затем я перезагрузить данные.

self.showLarge = YES; 
[self.collectionView reloadData]; 

В моих cellForItemAtIndexPath я загрузить соответствующую ячейку в соответствии с булевым:

if (!self.showLarge) 
{ 
    SmallCell *smallCell .. 
    etc 
    return smallCell; 
} else 
{ 
    LargeCell *smallCell .. 
    etc 
    return largeCell; 
} 

Однако это резкий переход.

Как бы я плавно анимировал новый пользовательский UICollectionViewCell?

ответ

2

Вы можете использовать разные UICollectionViewFlowLayout, а затем изменить расположение вида коллекции на лету. Это даст вам приятную анимацию без необходимости перезагрузки.

+0

Спасибо, как бы я это сделал? – cannyboy

+0

Просто используйте селектор setCollectionViewLayout: анимированный: 'в вашем представлении коллекции. – Cyrille

Смежные вопросы