0

所以我为我的 UICollectionView 创建了自己的自定义布局。当我从纵向模式旋转到横向模式时,一些单元格开始重新加载其内容。我认为布局只是改变了每个单元格的位置而不是重新加载内容?

只有当我在集合视图上调用 reload Data 时,内容才应该重新加载。

对可能发生的事情有任何想法吗?

4

3 回答 3

2

在您的 UICollectionViewLayout 子类中使用invalidateLayout而不是reloadData旋转,或覆盖并返回 YES。shouldInvalidateLayoutForBoundsChange:

于 2014-03-26T23:27:33.553 回答
1
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
    myCollectionView.frame = self.view.bounds;
    [myCollectionView.collectionViewLayout invalidateLayout];
}
于 2014-03-27T05:00:43.787 回答
0

不确定您是否针对此,但这里是:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
    [super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
    [self.collectionView reloadData];
}
于 2013-04-10T11:04:15.200 回答