我使用PureLayout进行编程视图约束。我以为我正确设置了它们,尺寸,X和Y都被解决了。但是,当我在SE vs 7 Plus上运行代码时,视图无法正确对齐。
以下是代码片段:
index.php
我认为视网膜屏幕上的屏幕点是相同的,那么为什么这些数字会有差异呢?
答案 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
}