Обновление рамок и ограничений в Xcode (Interface Builder)

Я изучал Xcode и iOS, и с кодированием дела идут хорошо, но я запутался в нескольких опциях в конструкторе интерфейсов.

Кажется, что когда я добавляю противопоказание, я могу выбрать "Обновить кадры", а затем либо "Элементы новых ограничений", либо "Все кадры", но мне кажется, что мне не всегда нужно это делать... иногда я делаю и иногда я не - я не думаю, что я действительно понимаю концепцию. Это кажется необязательным. Когда будет дело выбрать его или нет?

Как только ограничение добавлено, тогда это должно быть?

Существует также контекстное меню (Устранить проблемы с авторазмещением) (3-й элемент в нижней части построителя интерфейса, представленный треугольником между двумя вертикальными линиями), которое также позволяет принудительно обновлять ограничение или обновление фрейма. Зачем это нужно? Я заметил, что параметры внутри обычно отключены, поэтому я предполагаю, что это становится активным, когда есть проблемы?

Я пытался искать в Интернете, и я не могу найти ничего конкретного; чем больше я читаю, тем больше смущаюсь.

Кроме того, проверка работоспособности: фрейм - это ограничивающая рамка каждого отдельного элемента управления (представления), а не только элемента управления представлением, поэтому каждый вид (элемент управления) является его собственным кадром. Это правильно?

Ответ 1

Я попытаюсь объяснить концепцию ограничений и представления раскадровки.
Ограничения - используются для определения позиции элементов UIView внутри вашего представления. Например, вертикальное расстояние от вершины представления до вершины элемента UIView. Когда вы добавляете ограничение с помощью раскадровки, он воспроизводит две роли:

  • Позиционирование элемента внутри представления при запуске приложения
  • Позиционирование элемента в самом представлении раскадровки

Обновить фреймы - используется, когда вы хотите обновить раскадровку, чтобы она соответствовала применяемым в настоящее время ограничениям. Когда отображение раскадровки не соответствует ограничениям, появится предупреждение.

Добавить недостающие ограничения/ограничения обновления - создаст/изменит ограничения, применяемые к элементу UIView, в соответствии с тем, что в настоящее время представлено в раскадровке. Вид другого пути из фреймов обновления.

Ответ 2

Вам не нужно нажимать "обновить фрейм" каждый раз, когда вы добавляете ограничение, если вы это сделаете, оно обновит фрейм представления до того, что оно должно быть основано на ограничениях. Да, у каждого представления есть кадр, и это прямоугольник относительно вида viewview.

Чаще всего вы, вероятно, нажмете на ограничения обновления (Shift + Command + =), это позволит вам изменять размеры уже ограниченных представлений и обновлять связанные ограничения.