Как найти доступные варианты для anchorType в swift?
Как новичок я пытаюсь научиться правильно ориентироваться в документации Apple API, изучая учебное пособие в качестве помощи. Следуя примеру программных ограничений, я наткнулся на следующий метод:
let leadingConstraint = segmentedControl.leadingAnchor.constraint(equalTo: <NSLayoutAnchor<NSLayoutXAxisAnchor>)
Я узнал, что угловые скобки означают общее. Однако на это намекает Apple, используя угловые скобки в этой ситуации? При поиске документации по NSLayoutAnchor я не смог найти "topAnchor", подобный тому, который имеет следующий код:
let topConstraint = segmentedControl.topAnchor.constraint(equalTo: view.topAnchor)
Как я могу узнать, какие варианты для универсального типа называется "AnchorType"? Или я неправильно смотрю на контекст?
Заранее спасибо.
1 ответ
Первый пример, который вы приводите, - неверный код (например, отсутствие сбалансированных угловых скобок). Тем не менее, я думаю, что понимаю, что это может пытаться объяснить.
Документация 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