gpt4 book ai didi

ios - Stevia AutoLayout 库 : Excess Constraints

转载 作者:搜寻专家 更新时间:2023-11-01 06:40:37 25 4
gpt4 key购买 nike

我已经开始使用非常酷的新 IOS Swift AutoLayout 库:Stevia出于同样的原因,该项目已启动。但是,我一直遇到过度约束的问题。

在下面的示例中,我将 2 个具有固定宽度和高度的 View 居中并垂直对齐它们。但是,当我使用视觉格式或可链接的 API(下面的第二个代码块)对 Stevia 进行尝试时,我遇到了冲突

    var constraints = [NSLayoutConstraint]()

// width
constraints += NSLayoutConstraint.constraintsWithVisualFormat("[givenTF(300)]",
options:[], metrics:nil, views:["givenTF":givenTF])
constraints += NSLayoutConstraint.constraintsWithVisualFormat("[familyTF(300)]",
options:[], metrics:nil, views:["familyTF":familyTF])

// center
constraints += [NSLayoutConstraint(item: givenTF, attribute: .CenterX, relatedBy: .Equal, toItem: view, attribute: .CenterX, multiplier: 1, constant: 0)]

// vertical alignment
constraints += NSLayoutConstraint.constraintsWithVisualFormat(
"V:|-(70)-[givenTF(50)]-(2)-[familyTF(50)]",
options: .AlignAllCenterX, metrics: nil,
views: ["givenTF":givenTF, "familyTF":familyTF])

self.view.addConstraints(constraints)

我尝试过的 Stevia 视觉格式:

    self.view.layout([
70,
givenTF.centerHorizontally().size(300) ~ 50,
2,
familyTF.centerHorizontally().size(300) ~ 50
])
// Unable to simultaneously satisfy constraints.

以及 Chainable API:

    givenTF.top(70).centerHorizontally().size(300).height(50)
familyTF.top(122).centerHorizontally().size(300).height(50)
// Unable to simultaneously satisfy constraints.

我也尝试过更改调用方法的顺序。

最佳答案

调试冲突约束后,我意识到我有两个高度约束。在查看 Stevia 源代码后,我意识到设置宽度的正确方法不是 size() 而是 width()。大小设置高度和宽度。

 self.view.layout([
70,
givenTF.centerHorizontally().width(300) ~ 50,
2,
familyTF.centerHorizontally().width(300) ~ 50
])

如果 XCode 7 中的自动完成功能不总是让我崩溃,我可能会早点意识到这一点......

关于ios - Stevia AutoLayout 库 : Excess Constraints,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35884654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com