2013-03-05 3 views
0

, поэтому я создал свои собственные макеты для моего UICollectionView. Когда я поворачиваюсь из портретного режима в альбомный, некоторые из ячеек начинают перезагружать его содержимое. Я думал, что макет просто меняет позиции каждой ячейки, а не перезагружает контент?UICollectionView перезаряжает ячейки при вращении

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

Любые идеи о том, что может происходить?

+1

Просто предположим: поскольку '' 'UICollectionView''' имеет много общего с' '' UITableView'', я мог бы изобразить, что поведение представления таблицы применяется также к представлениям коллекции. '' 'UITableView''' переопределяет' 'layoutSubview''' и вызывает' '' reloadData''' изменения ориентации. Может быть, это просто не документировано ... – SAE

ответ

0

Не уверен, что если вы стремитесь к этому, но здесь идет:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{ 
    [super didRotateFromInterfaceOrientation:fromInterfaceOrientation]; 
    [self.collectionView reloadData]; 
} 
2

Использование invalidateLayout вместо reloadData при вращении, или переопределить shouldInvalidateLayoutForBoundsChange: и вернуть YES в вашем UICollectionViewLayout подкласса.

1
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration]; 
    myCollectionView.frame = self.view.bounds; 
    [myCollectionView.collectionViewLayout invalidateLayout]; 
} 
Смежные вопросы