UICollectionView 方向改变事故?

Posted

技术标签:

【中文标题】UICollectionView 方向改变事故?【英文标题】:UICollectionView orientation change mishap? 【发布时间】:2015-08-19 09:01:59 【问题描述】:

当我的收藏视图位于底部并且我将其从纵向更改为横向时,单元格会从视图中消失,直到我必须将它们向下拖动,如下所示:

常规纵向视图:

在旋转到横向时查看:

从视图顶部拖动单元格:

我该如何解决这个问题?

【问题讨论】:

你需要正确设置框架。 究竟是哪一帧? @AnkitKargathra 【参考方案1】:
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                                             duration:(NSTimeInterval)duration
 
    if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation))
    
       self.collectionViewObj.frame = CGRectMake(0, 0, 568, 320);
     
    else
    
       self.collectionViewObj.frame = CGRectMake(0, 0, 320, 568);
    

【讨论】:

在实现该方法并运行应用程序后,初始纵向视图与预期一致,即使在旋转为横向后也解决了该问题。但是,当我旋转回纵向时,整个视图会失真,并且在调试器中出现以下错误:Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.

以上是关于UICollectionView 方向改变事故?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 UICollectionView 中的滚动方向?

UICollectionView 中的垂直和水平滚动方向

设备方向更改时如何更改 UiCollectionView 单元格大小?

UICollectionView 检测滚动方向和更改图像

当滚动方向为水平时,从左到右填充 UICollectionView

UICollectionViewFlowLayout、UICollectionView:更改屏幕方向会破坏单元格排列