我对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。
这是一个简短视频的链接,我试图详细解决这个问题而不在旋转方法中做任何事情。