我有一个弹出视图,我希望它在iPad的纵向和横向外壳中具有不同的大小。这是我的代码,但是效果不佳,
在纵向和横向时,我希望它的宽度分别为超级视图宽度的60%和40%。
纵向和横向时,其高度分别为全景视图高度的50%和50%。
func popupConfiguration(){
switch UIDevice().userInterfaceIdiom {
case .tv, .carPlay, .unspecified, .phone:
break
case .pad:
if UIApplication.shared.statusBarOrientation == .portrait || UIApplication.shared.statusBarOrientation == .portraitUpsideDown {
popupView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.6).isActive = true
popupView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5).isActive = true
} else {
popupView.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.4).isActive = true
popupView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5).isActive = true
}
@unknown default:
break
}
}
然后,我应该将其添加到viewDidLayoutSubviews
或viewWillAppear
中吗?
非常感谢
答案 0 :(得分:0)
实施viewWillTransition(to:with:)
。查看新尺寸是纵向(高度较大)还是横向(宽度较大)。相应地替换您的约束;如果您在过渡协调器的动画中执行此操作,则更改将与旋转一起被动画化。