Что означает эта ошибка после удаления указанного ограничения c? - PullRequest
0 голосов
/ 02 мая 2020

Я только начал изучать swift, поэтому мой вопрос может показаться вам тривиальным.

После применения автоматического выделения к кнопке путем добавления ограничений на выравнивание, где «Горизонтально в контейнере» и «Вертикально в контейнере» установлены на 0, и добавив еще одно ограничение, в котором ширина и высота установлены на 100.

После этого я удалил ограничение «Вертикально в контейнере», просто чтобы посмотреть, что произошло, и увидел ошибку на высоте. То же самое верно, когда я удалил «Горизонтально в контейнере» только, который показал ошибку по ширине. Что на самом деле означает эта ошибка и почему она показывает это?

Также я никогда не понимал фразы «Вертикально в контейнере» и «Горизонтально в контейнере». Когда я применяю только «Вертикально в контейнере», горизонтальная линия появляется на раскадровке, что кажется странным, потому что вы ожидаете вертикальную линию, так как фраза имеет вертикальную линию. Почему это так?

Ошибка высоты кнопки после снятия ограничения "Вертикально в контейнере"

Я не могу опубликовать больше фотографий, потому что у меня не более 10 очков репутации.

1 Ответ

1 голос
/ 02 мая 2020

Чтобы визуализировать ваш вид (обычно прямоугольная форма angular), системе необходимо знать ширину и высоту для этого вида. Наряду с этим также необходимо знать, где вы хотите расположить этот вид / прямоугольник на экране.

Термин «Вертикально в контейнере» означает, что система будет позиционировать вид в вертикальном центре экрана, как итак -

Вертикально по центру экрана

Термин "горизонтально в контейнере" означает, что система будет располагать вид в горизонтальном центре экрана следующим образом -

Горизонтальное центрирование на экране

Очевидно, что, когда установлены оба эти ограничения, система будет позиционировать вид горизонтально и вертикально по центру, например: *

Горизонтальное и вертикальное центрированное представление

Когда вы удаляете ограничение «горизонтально в контейнере», система не имеет представления, где расположить представление горизонтально, и, следовательно, вы получаете эту ошибку. И хотя он имеет ширину, он будет показывать красную линию поперек оси X (не совсем ширину). Это подсказка для вас, чтобы добавить горизонтальное ограничение. Чтобы решить эту проблему, вы можете либо -

  • отцентрировать представление по горизонтали (что вы делали изначально)
  • указать начальные и конечные ограничения
  • указать левое и правое ограничения

Аналогичным образом, когда вы удаляете ограничение «вертикально в контейнере», система не знает, где разместить представление вертикально. Чтобы решить эту проблему, вы можете -

  • центрировать вид по вертикали (что вы делали изначально)
  • указать верхнее и нижнее ограничения

Я надеюсь, что это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...