所以我为我的 UICollectionView 创建了自己的自定义布局。当我从纵向模式旋转到横向模式时,一些单元格开始重新加载其内容。我认为布局只是改变了每个单元格的位置而不是重新加载内容?
只有当我在集合视图上调用 reload Data 时,内容才应该重新加载。
对可能发生的事情有任何想法吗?
所以我为我的 UICollectionView 创建了自己的自定义布局。当我从纵向模式旋转到横向模式时,一些单元格开始重新加载其内容。我认为布局只是改变了每个单元格的位置而不是重新加载内容?
只有当我在集合视图上调用 reload Data 时,内容才应该重新加载。
对可能发生的事情有任何想法吗?
在您的 UICollectionViewLayout 子类中使用invalidateLayout
而不是reloadData
旋转,或覆盖并返回 YES。shouldInvalidateLayoutForBoundsChange:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
myCollectionView.frame = self.view.bounds;
[myCollectionView.collectionViewLayout invalidateLayout];
}
不确定您是否针对此,但这里是:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
[self.collectionView reloadData];
}