1

我有两个不同的 UIViewController,它们都有 UiCollectionView。尝试旋转 iPad 时出现问题。接下来我处于纵向位置

在此处输入图像描述

当我旋转到横向时,我重新加载了我的 collectionView,所以在横向模式下我需要 3 列

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

在第一个 viewController 中一切都很好,当 collectionView 开始旋转控制器时仍然有 3 列

在此处输入图像描述

但是当我尝试在另一个控制器中执行此操作时,我的情况很糟糕

在此处输入图像描述

看起来好像在一瞬间我认为有两个collectionView,然后其中一个正在消失。

我使用标准 UICollectionViewFlowLayout 并具有相同的构建布局方法

4

3 回答 3

1

您是否尝试过调用视图..

  • (void)invalidateLayout

您可以随时调用此方法来更新布局信息。此方法使集合视图本身的布局无效并立即返回。因此,您可以从同一个代码块中多次调用此方法,而不会触发多次布局更新。实际的布局更新发生在下一个视图布局更新周期。

于 2013-08-19T14:02:28.267 回答
-1

你也试过这个吗?

  • (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { [self.collectionView reloadData]; }
于 2013-08-19T14:30:28.610 回答
-2

我想我有解决方案,试试这个在动画旋转时理解的方法;

  • (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 持续时间:(NSTimeInterval)duration {

    [super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; [self.collectionView reloadData]; }

于 2013-08-19T15:32:47.247 回答