旋转UICollectionView会丢失偏移量/索引XPath(iOS 8)
我的UICollectionView单元格存在允许旋转的问题 我有一个UICollectionView,我使用它作为一种媒体查看器,具有全屏和分页的图像/视频/音频。这允许用户在媒体之间滑动,就像Apple photos应用程序一样 旋转UICollectionView时,CV会丢失其偏移量,因此我在willTransition:方法中调用scroll to offset旋转UICollectionView会丢失偏移量/索引XPath(iOS 8),ios,rotation,uicollectionview,uicollectionviewlayout,Ios,Rotation,Uicollectionview,Uicollectionviewlayout,我的UICollectionView单元格存在允许旋转的问题 我有一个UICollectionView,我使用它作为一种媒体查看器,具有全屏和分页的图像/视频/音频。这允许用户在媒体之间滑动,就像Apple photos应用程序一样 旋转UICollectionView时,CV会丢失其偏移量,因此我在willTransition:方法中调用scroll to offset -(void)viewWillTransitionToSize:(CGSize)size withTransitionCoo
-(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]]){
}
}];
}];
-(void)视图将转换大小:(CGSize)带有转换协调器的大小:(id)协调器
[协调员AnimateLongsideTransition:无完成:^(id上下文){
[self.collectionView setContentOffset:CGPointMake((宽度*当前页面),0.0)];
[UIView animateWithDuration:.2个动画:^{
self.collectionView.alpha=1;
}完成:^(布尔完成){
UICollectionViewCell*单元格=[self cellInView];
if([cell IsKindof类:[MediaImageCell类]]){
}else if([单元格是类的种类:[MediaVideoCell类]]){
[((MediaVideoCell*)cell)cellFinishedRotating];
}else if([cell IsKindof类:[MediaAudioCell类]]){
}
}];
}];
这导致单元格具有cellForRow:名称,这意味着我的许多单元格正在重新配置,同时也使旋转看起来很难看
我见过一些应用程序使用类似的功能,在这些应用程序中,当媒体旋转时,页面看起来很完美,比如Twitter(最新更新)、Box、DropBox
目前,我的CollectionView正在使用一个子类流布局,但我在这方面没有做什么特别的事情,只设置了sectionInset和ScrollDirection
下面是我制作的一个短片的链接,我试图在不使用旋转方法的情况下详细说明这个问题