2017-11-11 3 views
0

Als Anfänger versuche ich zu lernen, die API-Dokumentation von Apple richtig zu navigieren, während ich ein Tutorial-Buch als Hilfe studiere. Während folgenden ein Beispiel auf programmatische Zwänge, stieß ich auf das folgende Verfahren:Wie finde ich die verfügbaren Optionen für anchorType in swift?

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

ich gelernt habe, dass die Klammern Winkel ein generisches bedeuten. Aber ist es das, was Apple durch die Verwendung von spitzen Klammern in dieser Situation bedeutet? Während die Dokumentation auf NSLayoutAnchor Suche, kann ich nicht „topAnchor“ ähnlich finden, wie der folgende Code hat:

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

Wie kann ich etwas für die generische Art der Möglichkeiten sind herauszufinden, genannt „Anchor“? Oder betrachte ich den Kontext falsch?

Vielen Dank im Voraus.

Antwort

0

Das erste Beispiel, das Sie geben, ist ungültiger Code (der Mangel an ausgeglichenen spitzen Klammern, für einen). Ich denke jedoch, dass ich verstehe, was es zu erklären versuchen könnte.

Apples Dokumentation für NSLayoutXAxisAnchor (siehe https://developer.apple.com/documentation/uikit/nslayoutxaxisanchor) hat ein ähnliches Beispiel zu Ihrer Sekunde.

In dieser Dokumentation wird erklärt, dass die Typen der Anker übereinstimmen müssen. In der Zeile

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

beide leadingAnchor und trailingAnchor sind X-Achse Anker und der Code ist gut.

Im zweiten Beispiel

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

topAnchor ist ein Y-Achse-Anker, so wird eine Warnung erzeugt.

NSLayoutXAxisAnchor aus NSLayoutAnchor abgeleitet, so glaube ich, das erste Beispiel Sie geben versucht, auf die Idee zu kommen, dass der Parameter ein NSLayoutAnchor sein muss, das ist eigentlich ein NSLayoutXAxisAnchor.

Die Dokumentation für NSLayoutAnchor (siehe https://developer.apple.com/documentation/uikit/nslayoutanchor) gibt die Möglichkeiten:

  • NSLayoutXAxisAnchor
  • NSLayoutYAxisAnchor
  • NSLayoutDimension
Verwandte Themen