iOS自定义键盘更改约束

时间:2018-06-25 19:31:48

标签: ios iphone swift keyboard constraints

我正在尝试以编程方式快速创建自定义键盘,到目前为止,我已经能够为iPhone上的portraitlandscape创建我想要的约束,但是只有当我在各自的方向。

当我自己翻转设备时出现问题:PortraitLandscape。我将约束存储在两个数组中,并在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)
}

对此有任何帮助。

当前的portraitlandscape

1 个答案:

答案 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) } }