Отбрасывание метки в пустую вертикаль StackView автоматически сжимает стек - PullRequest
0 голосов
/ 14 января 2020

Я новичок в XCode и всех вещах iPhone, и я заметил кое-что, что, как я полагаю, является правильным поведением, но мне кажется немного странным адаптироваться к нему. Для справки:

XCode version 11.3
Storyboard device view: iPhone 11 

Когда я создаю новый проект и перетаскиваю VerticalStackView в основной режим раскадровки, в центре его размера автоматически устанавливается прямоугольный контейнер разумного размера, который я могу свободно и легко измените его, перетаскивая углы, как мне нравится:

enter image description here

Теперь, когда я затем перетаскиваю метку в StackView, сначала все кажется ok

enter image description here

Однако мгновение спустя размер StackView автоматически уменьшается до размера только что вставленного ярлыка, который я не могу изменить.

enter image description here

При проверке размера StackView в его инспекторе размеров я вижу, что для ширины и высоты устанавливаются фиксированные значения (которые отражают фиксированные значения ярлык).

Кто-нибудь знает, что вызывает это автоматическое c поведение и как я могу его изменить? Я предполагаю, что это правильное поведение в том смысле, что StackView автоматически меняет свой размер на размер, определенный объектом, в который он был помещен, однако я хотел бы сделать это позже, как только я буду доволен некоторыми основами c посмотрите, и я добавил автоматическое ограничение макета, а не XCode, сделав несколько автоматов c для меня. Можно ли как-то изменить это поведение?

1 Ответ

0 голосов
/ 14 января 2020

Это кажется несколько странным подходом. Вы хотите добавить подпредставления к UIStackView ---, но не хотите, чтобы представление стека применило какие-либо атрибуты макета до тех пор, пока вы не станете "удовлетворенными некоторыми базовыми c look" ... однако, как только вы затем примените ограничения, этот вид изменится. Либо представление стека изменит размер, либо подпредставление изменит размер.

Вы можете сделать это:

  • поместите ваше представление стека туда, где вы хотите
  • задайте его ширину, высоту и ограничения положения
  • добавьте свои подпредставления

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

или ...

  • поместите представление стека туда, где вы хотите it
  • In Size Inspector , измените Layout с Automatic на Translates Mask Into Constraints

Это также предотвратит просмотр стека изменение размера / позиции.

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

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