Car*_*ter 6 button uisplitviewcontroller ios displaymode viewwilltransitiontosize
我有一个 UISplitViewController,它的辅助(详细)VC 是一个 UICollectionViewController。我希望集合的单元格根据集合视图的大小和方面的变化来调整大小。我通过覆盖 UIContentContainer 协议方法触发此调整大小:
// MARK: - UIContentContainer protocol methods
override
func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
{
setFlowLayoutItemSizeForViewSize(size)
collectionViewLayout.invalidateLayout()
}
Run Code Online (Sandbox Code Playgroud)
当设备旋转时,这就是我想要的方式调用和工作;但是当 splitViewController?.displayModeButtonItem() 提供的按钮被按下以显示或折叠主(主)视图控制器时,不会调用此方法。由于折叠必然会更改辅助(详细信息)视图的大小,因此我认为应该在触发时调用 viewWillTransitionToSize... 方法。
所以,两个问题:
1) 实际上是否应该在按下 displayModeButtonItem 时调用 viewWillTransitionToSize... 方法?如果是这样,我似乎发现了一个错误。
2)如果我看到的实际上是正确的行为,任何人都可以建议我的辅助(详细)控制器“知道”什么时候按下 displayModeButtonItem 或者它的大小何时因该按钮而改变被压?
谢谢!
卡尔
1) 不是错误;displayModeChange 未被处理为 sizeTransition
2)你的 UISplitviewController 很可能已经有一个 UISplitViewControllerDelegate 可以实现可选的:
splitViewController(_ svc: UISplitViewController,
willChangeToDisplayMode displayMode: UISplitViewControllerDisplayMode)
Run Code Online (Sandbox Code Playgroud)
将根据 splitView 切换到的模式UISplitViewControllerDisplayModePrimaryHidden或UISplitViewControllerDisplayModeAllVisible根据其切换到的模式来调用的方法。
| 归档时间: |
|
| 查看次数: |
3737 次 |
| 最近记录: |