2013-08-19 4 views
0

У меня есть два разных UIViewControllers, и у обоих из них есть UiCollectionView. Проблемы возникают, когда я пытаюсь повернуть iPad. Далее я в портретном положенииUICollectionView анимация вращения

enter image description here

Когда я поворачиваю на альбомную я перезагрузить мой CollectionView, так и в режиме Lanscape мне нужно иметь 3 колонки

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    [self.collectionView reloadData]; 
} 

В первом ViewController все хорошо, и когда CollectionView начала перевернутого контроллер еще 3 колонки

enter image description here

Но когда я пытаюсь сделать это в другой контроллер, я получаю плохую ситуацию

enter image description here

Это выглядит, как в один момент два CollectionView на мой взгляд, а затем один из них исчезает.

Я использую стандартную UICollectionViewFlowLayout и имеют те же методы для разметки buils

ответ

0

Вы пробовали вызова вид ..

  • (аннулируются) invalidateLayout

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

+0

Я попробовал ранний '[self.collectionView.collectionViewLayout invalidateLayout];' но у меня были такие же результаты – MaximusAlarmus

+0

Странно! shouldInvalidateLayoutForBoundsChange: Представляет объект макета, если новые границы требуют обновления макета. - (BOOL) mustInvalidateLayoutForBoundsChange: (CGRect) newBounds По-видимому, это ** НЕОБХОДИМО ** с помощью CollectionViews вы называете это? –

-1

Вы также пробовали это?

  • (пустоты) willRotateToInterfaceOrientation: (UIInterfaceOrientation) toInterfaceOrientation { [self.collectionView reloadData]; }
+0

Да, теперь я использую его, но это не решение, потому что оно исчезает в какой-то момент, когда оно вращается в действии, но мне нужно повернуть без исчезновения коллекцииView – MaximusAlarmus

-1

Я думаю, что у меня есть решение, попробуйте это, что понимает при анимации вращения;

  • (пустоты) willRotateToInterfaceOrientation: (UIInterfaceOrientation) Продолжительность toInterfaceOrientation :(NSTimeInterval) продолжительность {

    [супер willRotateToInterfaceOrientation: toInterfaceOrientation продолжительность: продолжительность]; [self.collectionView reloadData]; }

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