3

我正在尝试在我的 Swift 3 中添加一个子视图tableView。我希望前导锚点与父视图宽度的 0.05 倍相关(tableView)。

当我写以下内容时:

modalView.leadingAnchor.constraint(equalTo:margins.widthAnchor, constant: 0.05).isActive = true

我明白了

Cannot convert value of type 'NSLayoutDimension' to expected argument type 'NSLayoutAnchor<NSLayoutXAxisAnchor>'

如何使用创建所需的领先约束NSLayoutAnchor

4

2 回答 2

2

我只是有一个类似的问题。我得到:

无法将“NSLayout Y AxisAnchor”类型的值转换为预期的参数类型“NSLayoutAnchor <\NSLayout X AxisAnchor>”

X 和 Y 是两个不同的轴

如果您做的事情与“顶部和底部”相关,那么您要相互约束的事情应该都属于同一个轴!这意味着您不能限制“从左到上”!你不能限制“从下到左”。它们必须是平行的!

您的情况不同,但根本原因仍然相同。也就是说,您不能说“将元素的大小限制为一个”。

同样,您不能将宽度限制在轴上。宽度可以用另一个维度来约束,即它可以被约束到高度或宽度或深度,或者只是一个特定的值,比如 20.0

于 2017-10-24T21:05:09.620 回答
1

尝试使用以下代码:

modalView.leadingAnchor.constraint(equalTo:margins.widthAnchor as! NSLayoutAnchor<NSLayoutXAxisAnchor>, constant: 0.05).isActive = true
于 2017-02-12T19:09:00.707 回答