NSLayoutConstraint 的默认常量是啥?

Posted

技术标签:

【中文标题】NSLayoutConstraint 的默认常量是啥?【英文标题】:What are default constants for NSLayoutConstraint?NSLayoutConstraint 的默认常量是什么? 【发布时间】:2014-02-24 13:08:10 【问题描述】:

在 Xcode 中,我可以在窗口的 contentView 上放置一些控件,它们会根据一些未知规则获得默认间距。这取决于受约束的控件类型。比如两个regular typeNSButtons相隔12个点,而常规按钮和渐变按钮只有8个。

此外,垂直空间也取决于。常规间距为 8,但对于两个 NSTextFields,间距为 10,而它们下方的按钮甚至为 20。

什么是规则和/或常量?

【问题讨论】:

有趣的问题:D @Bimawa 我得到了下面的答案(如果你有兴趣) :) 非常感谢我使用 Masonry 库,它对自动布局非常有用;) 【参考方案1】:

目前无法在文档中找到它,但在涵盖该主题的各种 WWDC 视频中都提到了它 -

default 应参考 Human Interface Guidelines 中的各种建议默认值,即使用 default 将应用 Apple 的建议设置。

【讨论】:

感谢您的提示。我已经发现constraintsWithVisualFormat:… 也使用默认值(而不仅仅是 8 或 20)。也许我应该坚持这种方法,而不是试图强制执行。 我最近发现,即使是安装的约束也会根据控件的类型改变它们的常量!所以,我决定坚持使用可视化构造方法来获取默认值,然后自动布局引擎在运行时完成所有技巧。可能这些人没有导出默认值,但确实从约束中检测默认间距并即时修复它们。这足以解决我的问题。谢谢!

以上是关于NSLayoutConstraint 的默认常量是啥?的主要内容,如果未能解决你的问题,请参考以下文章

更改 NSLayoutConstraint 的常量

安全地更改 NSLayoutConstraint 常量值

Swift NSLayoutConstraint 基于方程的常量

在 iOS7 中设置 NSLayoutConstraint 常量

在 NSLayoutConstraint 上更新“常量”失败,并显示“无法分配给 'constraint' 中的 'constant'”

如何在 collectionView 单元格中设置 NSLayoutConstraint 常量?