【问题标题】:How can you tell a device has rotated so you can reload a UICollectionView如何判断设备已旋转,以便重新加载 UICollectionView
【发布时间】:2018-01-05 20:23:19
【问题描述】:

当边界改变时,我想invalidateLayout() 的自定义 UICollectionView。我知道我可以使用viewWillLayoutSubviews() 从控制器调用此方法。但是由于我想将这个自定义 UICollectionView 作为一个框架,我想实现该功能而不依赖于控制器。

如果我尝试在override open func layoutSubviews() 中使用invalidateLayout(),则会出现无限循环。

在给定的约束条件下实现我想要的最佳方式是什么?

【问题讨论】:

  • 你的意思是当你旋转设备时你想更新布局?
  • @TusharSharma 你是个读心者!!

标签: ios swift3 frameworks uicollectionview


【解决方案1】:

View Controller 有这个方法 -:

override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
        collectionView.collectionViewLayout.invalidateLayout()
    }

【讨论】:

  • 你确定是UICollectionView有这个方法吗?你能给我苹果开发者文档的链接吗?没找到
  • @Ham Dong Kyun 它是一种视图控制器方法,抱歉出错。你只需输入它,你就会得到一个。
  • 抱歉,我明确说明我不想将它链接到控制器。
  • @HamDongKyun 链接到控制器是什么意思?请解释一下。
  • 我希望代码位于 UICollectionView 子类中,并且不链接到任何 UIViewControllers。
猜你喜欢
  • 2016-08-21
  • 1970-01-01
  • 1970-01-01
  • 2019-09-09
  • 2017-05-29
  • 2012-05-19
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多