当屏幕旋转时,我有一个漂亮的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,只有在模态视图控制器中旋转时才会重新计算单元格大小。在这两种情况下都会触发完全相同的代码。
答案 0 :(得分:1)
解决了......
原来问题只存在于模拟器中。在实际设备上,它按预期工作。