我正在尝试以编程方式快速创建自定义键盘,到目前为止,我已经能够为iPhone上的portrait和landscape创建我想要的约束,但是只有当我在各自的方向。
当我自己翻转设备时出现问题:Portrait,Landscape。我将约束存储在两个数组中,并在viewDidLoad和viewWillTransition函数中运行此代码块:
if UIScreen.main.bounds.height >= 568 {
NSLayoutConstraint.deactivate(constraintsLandscape)
NSLayoutConstraint.activate(constraintsPortrait)
}
else if UIScreen.main.bounds.height <= 414 {
NSLayoutConstraint.deactivate(constraintsPortrait)
NSLayoutConstraint.activate(constraintsLandscape)
}
对此有任何帮助。
答案 0 :(得分:1)
如果这是方法内部,屏幕旋转后是否调用它?如果没有,您可以检查设备旋转以替代此方法:
[Route("api/[controller]")]
[ApiController]
public class DomainController : ControllerBase // <-- add a public keyword
{
[...]
}
如果您已经在执行此操作,则只需在更改约束后调用override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
if UIDevice.current.orientation.isLandscape {
print("Device is in Landscape mode")
NSLayoutConstraint.deactivate(constraintsPortrait)
NSLayoutConstraint.activate(constraintsLandscape)
} else {
print("Device is in Portrait mode")
NSLayoutConstraint.deactivate(constraintsLandscape)
NSLayoutConstraint.activate(constraintsPortrait)
}
}
。