UIViewCollection在模态视图控制器中旋转后调整单元格大小

时间:2015-10-09 06:19:31

标签: ios objective-c uicollectionview orientation ios9

当屏幕旋转时,我有一个漂亮的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旋转时,单元格大小是重新计算的IS,只有在模态视图控制器中旋转时才会重新计算单元格大小。在这两种情况下都会触发完全相同的代码。

1 个答案:

答案 0 :(得分:1)

解决了......

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