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

Posted

技术标签:

【中文标题】设备方向更改时如何更改 UiCollectionView 单元格大小?【英文标题】:How to change UiCollectionView cell size when device orientation changes? 【发布时间】:2016-04-12 05:37:24 【问题描述】:

我正在使用 UICollectionView 并使用以下方法设置单元格的大小:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize 
        return CGSizeMake(collectionView.bounds.size.width, 313)
    

加载视图时单元格大小是可以的。但是,当方向改变时,单元格大小不会根据视图的宽度和高度进行更新。

我尝试检测设备方向并正确执行。当设备方向改变时,调用如下方法:

func rotated()

    self.shareLogCollectionView.reloadData()

但是,我收到以下错误: 致命错误:在展开可选值时意外发现 nil

那么,如何更新单元格大小并根据设备方向的变化进行调整?请帮忙!

【问题讨论】:

'unexpectedly found nil while unwrapping an Optional value' 当展开对象为 nil 时显示。请检查 shareLogCollectionView 是否连接了正确的插座。 非常感谢,您说得对!我以某种方式不正确地引用了插座。 【参考方案1】:

正如@krishnanunni 已经提到的,

请检查 shareLogCollectionView 是否连接了正确的插座。 这是一个很常见的错误。

也可以使用viewWillTransitionToSize进行旋转

请检查。

【讨论】:

以上是关于设备方向更改时如何更改 UiCollectionView 单元格大小?的主要内容,如果未能解决你的问题,请参考以下文章

设备方向更改时如何重新排列集合视图单元格

在设备方向更改时交叉淡入某些 UIView

uiviewcontroller中的设备方向更改[重复]

更改 iPhone 中的方向时如何更改视图控制器的视图?

在移动设备中更改方向时需要关闭弹出窗口

如何根据设备方向更改堆栈视图方向?