我有一个在 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 中更改拆分模式/滑动窗口大小的同时更新这些约束,那就太好了。提前致谢