Попытка понять NSLayoutConstraints с быстрым - PullRequest
0 голосов
/ 20 октября 2019

Я получил новую книгу о том, как создавать приложения, используя swift, но она не очень хорошо объясняет NSLayoutConstraints. Вот пример кода

let constraint = 
     NSLayoutConstraint(item: myLabel,
          attribute: NSLayoutConstraint.Attribute.centerX,
          relatedBy: NSLayoutConstraint.Relation.equal,
          toItem: myButton,
          attribute: NSLayoutConstraint.Attribute.centerX,
          multiplier: 1.0,
          constant: 0.0)

Что меня смущает, так это несколько вещей, поэтому спасибо, что нашли время прочитать это.

Я вижу, что есть два атрибута. Является ли первый атрибутом текста внутри метки, а второй атрибутом, связанным с кнопкой (myButton)? Я не совсем уверен. Можете ли вы также объяснить связанные части. Спасибо.

1 Ответ

1 голос
/ 20 октября 2019

Представьте себе:

Соединение <this object> от <this point> до <that point> из <that object>, умноженное на <1> плюс <this much> смещение <exactly/or more/or less>.

Я пытался сопоставить это:

Соедините <this object> [1] из <this point> [2] с <that point> [5] из <that object> [4],умножается на <1> [6] плюс <this much> [7] смещение <exactly/or more/or less> [3].

до объяснения кода:

Ограничение <myLabel>[1] от <.centerX> [2] до <.centerX> [5] из <myButton> [4], умноженное на <1.0> [6] плюс <0.0> [7] смещение <.equal/.greaterThanOrEqual/.lessThanOrEqual> [3].

Это было:

let constraint = 
     NSLayoutConstraint(
          item: myLabel, // [1]
          attribute: NSLayoutConstraint.Attribute.centerX, // [2]
          relatedBy: NSLayoutConstraint.Relation.equal, // [3]
          toItem: myButton, // [4]
          attribute: NSLayoutConstraint.Attribute.centerX, // [5]
          multiplier: 1.0, // [6]
          constant: 0.0 // [7]
     )
...