【问题标题】:UIViewCollection resize cells after rotation in modal view controllerUIViewCollection 在模态视图控制器中旋转后调整单元格大小
【发布时间】:2016-01-06 23:38:22
【问题描述】:

当屏幕旋转时,我有一个 UIViewCollection 工作得很好。一切都完美地调整了大小。

但是,当我转到模态视图控制器,然后旋转,然后关闭时,只有“一些”旋转任务完成。它不会调整单元格的大小。

我确实在我的模态视图控制器中设置了一个委托,它确实调用了父视图控制器的 didRotate...

- (void)didRotateFromInterfaceOrientationInModal:(UIInterfaceOrientation)fromInterfaceOrientation {
[self.collectionView performBatchUpdates:^{
    [self.collectionView setCollectionViewLayout:self.collectionView.collectionViewLayout animated:YES];
} completion:nil];
    [self.collectionView.collectionViewLayout invalidateLayout];
    [self.collectionView invalidateIntrinsicContentSize];
}

- (void)willRotateToInterfaceOrientationInModal:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {

    [self.collectionView.collectionViewLayout invalidateLayout];
    [self.collectionView invalidateIntrinsicContentSize];
}

并且我已经验证了当我在模态视图控制器中旋转时它们会被触发。

再次,当我从 collectionviewcontroler 旋转时,正在重新计算单元格大小,只有在模式视图控制器中旋转时才会重新计算单元格大小。在这两种情况下都会触发完全相同的代码。

【问题讨论】:

  • 您的模式是原始视图控制器的子视图控制器吗?如果不将其添加为子视图控制器,则显示它。
  • 它是一个子视图控制器。父 UICollectionViewController 呈现一个模态子 UIViewController。

标签: ios objective-c uicollectionview orientation ios9


【解决方案1】:

解决了……

原来问题只存在于模拟器中。在实际设备上,它按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多