旋转UICollectionView失去偏移/索引路径(iOS 8)

时间:2015-03-23 15:52:14

标签: ios rotation uicollectionview uicollectionviewlayout

我对UICollectionView单元格有问题,我允许旋转。

我有一个UICollectionView,我用它作为一种媒体查看器,带有全屏和分页的图像/视频/音频。这允许用户在媒体片之间滑动,就像Apple照片应用程序一样。

当旋转UICollectionView时,CV会丢失其偏移量,因此我在willTransition:方法中调用scroll to offset。

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

[coordinator animateAlongsideTransition:nil completion:^(id<UIViewControllerTransitionCoordinatorContext> context) {
        [self.collectionView setContentOffset:CGPointMake((width * currentPage), 0.0)];

    [UIView animateWithDuration:.2 animations:^{
        self.collectionView.alpha = 1;
    } completion:^(BOOL finished) {

        UICollectionViewCell *cell = [self cellInView];

        if([cell isKindOfClass:[MediaImageCell class]]){

        } else if([cell isKindOfClass:[MediaVideoCell class]]){
            [((MediaVideoCell *)cell) cellFinishedRotating];
        } else if([cell isKindOfClass:[MediaAudioCell class]]){

        }
    }];

}];

这导致单元格具有cellForRow:调用意味着我的许多单元格正在被重新配置,并且使旋转看起来很丑。

我见过的应用程序使用了类似的功能,在这些功能中,他们有分页媒体,旋转时看起来很完美,Twitter(最新更新),Box,DropBox。

目前我的CollectionView正在使用子类化的Flow Layout,但我没有做任何特别的事情,只设置了sectionInset和ScrollDirection。

这是一个简短视频的链接,我试图详细解决这个问题而不在旋转方法中做任何事情。

Video

0 个答案:

没有答案