作为一个初学者,我试图学习一本辅助教程,同时学习正确浏览Apple的API文档。在遵循有关程序约束的示例时,我遇到了以下方法:
let leadingConstraint = segmentedControl.leadingAnchor.constraint(equalTo: <NSLayoutAnchor<NSLayoutXAxisAnchor>)
我了解到尖括号表示通用。但是,这是苹果在这种情况下使用尖括号所暗示的意思吗?在NSLayoutAnchor上搜索文档时,找不到类似于以下代码的“ topAnchor”:
let topConstraint = segmentedControl.topAnchor.constraint(equalTo: view.topAnchor)
我如何找出泛型称为“ AnchorType”的选择?还是我看错了上下文?
先感谢您。
最佳答案
您提供的第一个示例是无效的代码(其中一个缺少平衡的尖括号)。但是,我认为我理解它可能试图解释的内容。
Apple的NSLayoutXAxisAnchor
文档(请参阅https://developer.apple.com/documentation/uikit/nslayoutxaxisanchor)与您的第二个示例类似。
在本文中,文档说明锚点的类型需要匹配。在行中
cancelButton.leadingAnchor.constraintEqualToAnchor(saveButton.trailingAnchor, constant: 8.0).active = true
leadingAnchor
和trailingAnchor
都是X轴锚点,并且代码良好。在第二个例子中
cancelButton.leadingAnchor.constraintEqualToAnchor(saveButton.topAnchor, constant: 8.0).active = true
topAnchor
是Y轴锚点,因此会生成警告。NSLayoutXAxisAnchor
是从NSLayoutAnchor
派生的,因此,我认为您给出的第一个示例是试图弄清楚参数必须是实际上是NSLayoutAnchor
的NSLayoutXAxisAnchor
的想法。NSLayoutAnchor
(请参阅https://developer.apple.com/documentation/uikit/nslayoutanchor)的文档提供了以下可能性:NSLayoutXAxisAnchor
NSLayoutYAxisAnchor
NSLayoutDimension