gpt4 book ai didi

ios - 为什么displayModeButtonItem触发splitViewController崩溃时没有调用viewWillTransitionToSize...?

转载 作者:行者123 更新时间:2023-12-02 01:26:17 25 4
gpt4 key购买 nike

我有一个 UISplitViewController,其辅助(详细)VC 是 UICollectionViewController。我希望集合的单元格根据 Collection View 的大小和方面的变化来调整大小。我通过重写 UIContentContainer 协议(protocol)方法来触发此调整大小:

// MARK: - UIContentContainer protocol methods

override
func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)
{
setFlowLayoutItemSizeForViewSize(size)
collectionViewLayout.invalidateLayout()
}

当设备旋转时,这将按照我想要的方式调用和工作;但是当按下 splitViewController?.displayModeButtonItem() 提供的按钮来显示或折叠主(主) View Controller 时,不会调用此方法。由于折叠必然会改变辅助(详细) View 的大小,因此我认为 viewWillTransitionToSize... 方法应该在触发时调用。

那么,有两个问题:

1) 当按下 displayModeButtonItem 时是否应该调用 viewWillTransitionToSize... 方法?如果是这样,我似乎发现了一个错误。

2)如果我所看到的实际上是正确的行为,任何人都可以建议一种方法,让我的辅助(详细) Controller “知道”何时按下 displayModeButtonItem,或其大小因此而改变按下该按钮?

谢谢!

卡尔

最佳答案

1) 不是错误; displayModeChange 未被视为 sizeTransition

2)您的 UISplitviewController 很可能已经有一个 UISplitViewControllerDelegate 可以实现可选的:

splitViewController(_ svc: UISplitViewController,
willChangeToDisplayMode displayMode: UISplitViewControllerDisplayMode)

将使用 UISplitViewControllerDisplayModePrimaryHiddenUISplitViewControllerDisplayModeAllVisible 调用的方法,具体取决于 splitView 切换到的模式。

关于ios - 为什么displayModeButtonItem触发splitViewController崩溃时没有调用viewWillTransitionToSize...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32150227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com