Ios 在拆分模式屏幕中更改应用程序窗口大小的更新约束

Ios 在拆分模式屏幕中更改应用程序窗口大小的更新约束,ios,swift,ipad,constraints,split-screen-multitasking,Ios,Swift,Ipad,Constraints,Split Screen Multitasking,我有一个在iPhone和iPad上运行良好的应用程序。但是,当应用程序在拆分模式下运行时,每当我们将拆分模式窗口大小从1/3、2/3等更改时,我都要更新视图的约束。我们如何知道应用程序正在这些屏幕上工作,并相应地更新约束。在拆分模式更改的情况下,视图不会随约束更新 我已使用以下代码成功识别方向更改和更新约束,其工作正常 override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTrans

我有一个在iPhone和iPad上运行良好的应用程序。但是,当应用程序在拆分模式下运行时,每当我们将拆分模式窗口大小从1/3、2/3等更改时,我都要更新视图的约束。我们如何知道应用程序正在这些屏幕上工作,并相应地更新约束。在拆分模式更改的情况下,视图不会随约束更新

我已使用以下代码成功识别方向更改和更新约束,其工作正常

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {

          if UIDevice.current.orientation.isLandscape {
              containerWidthConstraintForLandscape = NSLayoutConstraint(item: containerView, attribute: .width, relatedBy: .equal, toItem: view, attribute: .width, multiplier: 0.5, constant: 0)
              NSLayoutConstraint.activate([containerWidthConstraintForLandscape])
              NSLayoutConstraint.deactivate([containerWidthConstraintForPortrait])
           }
          else {
             containerWidthConstraintForPortrait = NSLayoutConstraint(item: containerView, attribute: .width, relatedBy: .equal, toItem: view, attribute: .width, multiplier: 0.7, constant: 0)
             NSLayoutConstraint.deactivate([containerWidthConstraintForLandscape])
             NSLayoutConstraint.activate([containerWidthConstraintForPortrait])
          }

    }

如果有人能告诉我如何在iPad中以拆分模式/滑动模式更改窗口大小的同时更新这些限制,那就太好了。提前感谢

如果我(a)误解了问题或(b)在代码中遇到了从未见过的错误,请向上投票。我倾向于使用
viewWillLayoutSubviews()
。是的,它被反复调用,但如果需要,我会确保我的代码只被调用一次。试试这个-它对我有用。@dfd这是我的场景。我有10个按钮,它们在我的视野中均匀分布。它在每台设备上都能正常工作,在iPad上,每个按钮的大小都非常巨大。因此,在本例中,我通过对视图进行约束来处理这些问题。在iPad的情况下,按住按钮占据屏幕的一半,现在按钮的大小与iPhone一样好。但是在拆分模式下,我们总是可以通过拖动应用程序的边界将窗口大小从2/3更改为1/3。在这种情况下,约束不可用working@dfd我想捕捉屏幕窗口的变化并更新约束条件,无论如何,我会研究你给出的解决方案,并会更新你,谢谢