正确设置PureLayout约束?

时间:2017-09-01 12:17:04

标签: ios swift constraints pure-layout

我使用PureLayout进行编程视图约束。我以为我正确设置了它们,尺寸,X和Y都被解决了。但是,当我在SE vs 7 Plus上运行代码时,视图无法正确对齐。

以下是代码片段:

index.php

我认为视网膜屏幕上的屏幕点是相同的,那么为什么这些数字会有差异呢?

2 个答案:

答案 0 :(得分:0)

iPhone SE(320x568)和7 Plus(414x736)的逻辑分辨率不一样

不要从顶部或左侧定位每个约束,而是尝试使用给定superview的每一面。

答案 1 :(得分:0)

您只是为超视角提供约束。您应该相互使用约束。我不是100%肯定,但这也应解决屏幕问题。

以下是你应该做的事情:

if (shouldSetupConstraints) {
    // bg
    backgroundView.autoPinEdgesToSuperviewEdges()
    // positions

    emailTextField.autoPinEdge(toSuperviewEdge: .top, withInset: 170)
    emailTextField.autoPinEdge(toSuperviewEdge: .left, withInset: 60)

    passwordTextField.autoPinEdge(.top, to: .bottom, of:  emailTextField, withOffset: 80.0, relation: .equal)
    passwordTextField.autoAlignAxis(.vertical, toSameAxisOf:  emailTextField)

    loginButton.autoPinEdge(.top, to: .bottom, of:  passwordTextField, withOffset: 100.0, relation: .equal)
    loginButton.autoPinEdge(toSuperviewEdge: .left, withInset: 75)

    recoverButton.autoPinEdge(.top, to: .bottom, of:  loginButton, withOffset: 60.0, relation: .equal)
    recoverButton.autoAlignAxis(.vertical, toSameAxisOf:  emailTextField)

    // confirms setup is done
    shouldSetupConstraints = false
}