0

作为一个初学者,我正在努力学习如何正确浏览 Apple 的 API 文档,同时学习一本教程书作为帮助。在遵循有关程序约束的示例时,我遇到了以下方法:

let leadingConstraint = segmentedControl.leadingAnchor.constraint(equalTo: <NSLayoutAnchor<NSLayoutXAxisAnchor>)

我了解到尖括号表示泛型。然而,这是苹果在这种情况下使用尖括号所暗示的吗?在 NSLayoutAnchor 上搜索文档时,我找不到类似于以下代码的“topAnchor”:

let topConstraint = segmentedControl.topAnchor.constraint(equalTo: view.topAnchor)

如何找出名为“AnchorType”的泛型类型有哪些选择?还是我看错了上下文?

先感谢您。

4

1 回答 1

0

您给出的第一个示例是无效代码(例如缺少平衡的尖括号)。但是,我想我理解它可能试图解释的内容。

Apple 的文档NSLayoutXAxisAnchor(请参阅https://developer.apple.com/documentation/uikit/nslayoutxaxisanchor)有一个与您的第二个类似的示例。

在此文档中解释了锚的类型需要匹配。在行

cancelButton.leadingAnchor.constraintEqualToAnchor(saveButton.trailingAnchor, constant: 8.0).active = true

两者都是 X 轴锚点leadingAnchortrailingAnchor代码很好。

在第二个例子中

cancelButton.leadingAnchor.constraintEqualToAnchor(saveButton.topAnchor, constant: 8.0).active = true

topAnchor是 Y 轴锚点,因此会生成警告。

NSLayoutXAxisAnchor派生自NSLayoutAnchor,所以我认为你给出的第一个例子是试图理解参数需要是 a 的想法,NSLayoutAnchor实际上是 a NSLayoutXAxisAnchor

NSLayoutAnchor(请参阅https://developer.apple.com/documentation/uikit/nslayoutanchor )的文档提供了以下可能性:

  • NSLayoutXAxisAnchor
  • NSLayoutYAxisAnchor
  • NSLayoutDimension
于 2017-11-11T23:29:20.987 回答