ios - 如果使用多任务时 View 大小发生变化,如何设置通知 |迅速

标签 ios ipad split-screen-multitasking

当我在 iPad 上使用多任务测试我的应用程序并更改应用程序上的应用程序大小时, Collection View 单元格需要调整大小,否则它们将不适合 View 窗口。

我已经采取了一些措施比如

  • 改变细胞大小的检测装置
  • 测量 View 大小以确保单元格适合窗口
  • 如果用户改变设备方向则添加观察者

这一切都很棒,但是当使用多任务处理或返回全屏应用程序时实际更改窗口大小时,单元格大小不会改变并且看起来不合适。直到通过切换方向或切换 View Controller 强制执行 viewWillLoadviewDidLoad 再次执行。

那么,如果 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/

相关文章:

ios - 核心剧情: grid lines background color

ios - 在 webview 上自动调整掩码没有任何区别

flash - 使用 renderMode=GPU 的 iPad AIR 应用程序的性能突然下降

ios - 在 iOS 中跨应用程序(后台/前台或分屏多任务处理)共享 UDP 数据

ipad - 检查 iPad 是否具有 iOS 9 中的多任务处理功能 - 以编程方式

android - 在 Flutter 和 native 代码中使用 Firestore 的缓存行为

iphone - 如何隐藏/删除联系人选择器上的搜索栏

iphone - 将 UIView 导入 UIViewController

ipad - 如何在 PC 上使用 Apple SDK?