如何以编程方式设置约束加常量?

Posted

技术标签:

【中文标题】如何以编程方式设置约束加常量?【英文标题】:How to set constraint programatically plus constant? 【发布时间】:2020-01-10 20:03:12 【问题描述】:

我希望我的按钮在中心上方 200 处。我的代码错误:

docButton.centerYAnchor.constraint(equalTo: view.centerYAnchor + 200),

Binary operator '+' cannot be applied to operands of type 'NSLayoutYAxisAnchor' and 'Int'

如何将按钮设置为在中心上方一些位置?

另外,我想设置一个后退按钮。如何将按钮的约束设置为顶部安全区域下方 20 点和左侧安全区域右侧 20 点?

提前致谢。

【问题讨论】:

docButton.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: 200) 【参考方案1】:

你需要

docButton.centerYAnchor.constraint(equalTo: view.centerYAnchor,constant:-200) // -200 above the center?

用 safeArea 引导

docButton.leadingnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingnchor,constant:20)

【讨论】:

非常感谢。关于我手机的安全视图(边界)如何?【参考方案2】:

请参阅 Apple Docs 上的此链接: https://developer.apple.com/documentation/uikit/nslayoutyaxisanchor

    您正在尝试将 200 添加到非整数类型 (NSLayoutYAxisAnchor)。

    你可以使用这个: cancelButton.topAnchor.constraintEqualToAnchor(saveButton.topAnchor, constant: -200).active = true

【讨论】:

以上是关于如何以编程方式设置约束加常量?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中以编程方式更新约束的常量属性?

以编程方式添加的约束反向工作

以编程方式更改纵横比约束值

如何在 Swift 中以编程方式在水平线上设置约束? [关闭]

如何以编程方式设置 UITableView 标头的约束以支持 RTL 和 LTR?

以编程方式从集合视图下方设置标签约束