Размер ваших панелей инструментов может быть изменен, потому что, если вы не укажете ограничения для своих элементов пользовательского интерфейса (таких как панели инструментов и UIImageView
s), XCode интерпретирует его по-своему и покажет вам, что он считает лучшим макетом.Мы обычно обходим эту проблему, явно устанавливая следующее свойство каждого элемента пользовательского интерфейса в false:
MyUIElement.translatesAutoresizingMaskIntoConstraints = false
и затем программно определяем ограничения элемента.Обратите внимание, что MYUIElement
это то, что вы назвали своим UIElement.Это говорит XCode, что вы, как программист, хотите получить полный контроль над позиционированием элемента пользовательского интерфейса в его представлении.
Вы можете запретить изменение размера панели инструментов, установив для нее ограничение программно:
topToolbar.heightAnchor.constraint(equalToConstant: 50.0).isActive = true
bottomToolbar.heightAnchor.constraint(equalToConstant: 50.0).isActive = true
Конечно, вы бы заменили topToolbar
и bottomToolbar
на то, что вы называли, называя ваши панели инструментов, и 50.0
на любое значение, подходящее для вашего варианта использования.
Это называется AutoLayout.Эти две строки кода должны вызываться после того, как ваши панели инструментов были настроены (если вы создаете их программно).
Однако концепция программного пользовательского интерфейса, вероятно, не рассматривается в курсе разработки iOS для начинающих, и вы наиболеескорее всего, построение этого с использованием раскадровки, которая объясняет, почему ваши панели инструментов выходят из-под контроля!
Если вы создали их с помощью Interface Builder (т.е. в вашей раскадровке), то вы можете либо изменить ограничение высоты, используякод выше или поигравшись с настройками макета в Интерфейсном Разработчике, нажав кнопку ниже:
Если вы решили установить свое ограничение черезкак указано выше, обратите внимание, что XCode может сказать , что вам нужно указать еще больше ограничений (например, ограничение ширины), чтобы компилятор не считал положение вашей панели инструментов «неоднозначным».