当我在 iPad 上使用多任务测试我的应用程序并更改应用程序上的应用程序大小时, Collection View 单元格需要调整大小,否则它们将不适合 View 窗口。
我已经采取了一些措施比如
- 改变细胞大小的检测装置
- 测量 View 大小以确保单元格适合窗口
- 如果用户改变设备方向则添加观察者
这一切都很棒,但是当使用多任务处理或返回全屏应用程序时实际更改窗口大小时,单元格大小不会改变并且看起来不合适。直到通过切换方向或切换 View Controller 强制执行 viewWillLoad
或 viewDidLoad
再次执行。
那么,如果 view.frame
大小发生变化,我该如何设置通知呢?
最佳答案
我认为要覆盖的正确函数是 viewWillTransition(to:, with:)
。每当容器大小即将更改时调用它。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
self.collectionView?.collectionViewLayout.invalidateLayout()
}
关于ios - 如果使用多任务时 View 大小发生变化,如何设置通知 |迅速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36297901/