这就是我重写视图控制器的方式,但是,如果还有另一种更好的方法可以做到这一点,并且使我的第二个视图控制器与重写不符,请直接指导我,任何建议都可以。
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
coordinator.animate(alongsideTransition: { (UIViewControllerTransitionCoordinatorContext) -> Void in
let orient = UIApplication.shared.statusBarOrientation
switch orient {
case .portrait:
print("Portrait")
self.applyPortraitConstraint()
break
// Do something
default:
print("LandScape")
// Do something else
self.applyLandScapeConstraint()
break
}
}, completion: { (UIViewControllerTransitionCoordinatorContext) -> Void in
print("rotation completed")
})
super.viewWillTransition(to: size, with: coordinator)
}
func applyPortraitConstraint(){
stackView.axis = .vertical
stackView.distribution = .fill
}
func applyLandScapeConstraint(){
stackView.axis = .horizontal
stackView.distribution = .fillEqually
}
Run Code Online (Sandbox Code Playgroud)