尺寸方法don';无法在UISplitViewController iOS8中调用细节视图控制器

尺寸方法don';无法在UISplitViewController iOS8中调用细节视图控制器,ios,ios8,uicollectionview,uisplitviewcontroller,uitraitcollection,Ios,Ios8,Uicollectionview,Uisplitviewcontroller,Uitraitcollection,我有一个UIViewController包含一个UICollectionView使用UICollectionViewFlowLayout。 视图控制器是UISplitViewController的详细视图控制器 视图控制器是流布局的代理,UICollectionViewCells的大小是根据集合视图中的可用空间计算的。(例如itemSize=宽度/3,高度/2) 在iOS8中,Apple引入了API来折叠split view控制器的主部分 当集合视图展开以强制重新计算项目大小时,我希望使集合视图

我有一个
UIViewController
包含一个
UICollectionView
使用
UICollectionViewFlowLayout
。 视图控制器是
UISplitViewController
的详细视图控制器

视图控制器是流布局的代理,
UICollectionViewCells
的大小是根据集合视图中的可用空间计算的。(例如
itemSize
=宽度/3,高度/2

在iOS8中,Apple引入了API来折叠split view控制器的主部分

当集合视图展开以强制重新计算项目大小时,我希望使集合视图的布局无效

我曾考虑在iOS8中引入的新的size方法中添加适当的代码,但在折叠master侧时,没有调用任何一个方法

这是我试过的代码。它不叫:

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {

    [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) {

    } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
        [self.collectionView.collectionViewLayout invalidateLayout];
        [self.collectionView reloadData];
    }];
}

-(void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
    [super traitCollectionDidChange:previousTraitCollection];
    [self.collectionView.collectionViewLayout invalidateLayout];
    [self.collectionView reloadData];
}
-(void)视图将转换大小:(CGSize)带有转换协调器的大小:(id)协调器{
[协调员AnimateLongsideTransition:^(id上下文){
}完成:^(id上下文){
[self.collectionView.collectionViewLayout invalidateLayout];
[self.collectionView-reloadData];
}];
}
-(void)traitCollectionDidChange:(UITraitCollection*)以前的TraitCollection{
[super traitCollectionDidChange:previousTraitCollection];
[self.collectionView.collectionViewLayout invalidateLayout];
[self.collectionView-reloadData];
}