我有一个 UISplitViewController,其辅助(详细)VC 是 UICollectionViewController。我希望集合的单元格根据集合视图的大小和方面的变化来调整大小。我通过覆盖 UIContentContainer 协议方法来触发这种调整大小:
// MARK: - UIContentContainer protocol methods
override
func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
{
setFlowLayoutItemSizeForViewSize(size)
collectionViewLayout.invalidateLayout()
}
当设备旋转时,这被调用并按照我想要的方式工作;但是当按下 splitViewController?.displayModeButtonItem() 提供的按钮以显示或折叠主(主)视图控制器时,不会调用此方法。由于该折叠必然会更改辅助(详细)视图的大小,因此我会认为应该在触发时调用 viewWillTransitionToSize... 方法。
所以,两个问题:
1)实际上是否应该在按下 displayModeButtonItem 时调用 viewWillTransitionToSize... 方法?如果是这样,我似乎发现了一个错误。
2)如果我所看到的实际上是正确的行为,任何人都可以建议一种方法让我的辅助(详细)控制器“知道”何时按下 displayModeButtonItem,或者当它的大小因该按钮而发生变化时被压?
谢谢!
卡尔