2016-06-15 4 views
5

Вот как это выглядит в моей раскадровке и Preview:размера класс компактная высота не работает должным образом с осью UIStackView и реальным устройством

enter image description here

И это то, что я создал в раскадровке для этого UIStackView:

enter image description here

Но все меняется, когда я бегу это на реальном устройстве:

enter image description here

Почему это происходит?

Обратите внимание, что у меня здесь два UIStackViews: значок с ярлыками, две кнопки. Второй работает правильно, но не первый. Зачем? это делается точно так же. Две прямые подвиды из UIStackView

EDIT

я понял, что проблема возникает только с UIImageView как прямой подвид из UIStackView.

+0

Похоже, у вас проблемы с ограничениями. – Vaionixx

+0

Не могли бы вы предложить, что может быть неправильно? –

+0

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

ответ

0

Просто коснитесь раздела «Распределение» кнопки «+» и выберите «Любая x Компактная высота» и заполните одинаково. Надеюсь, это хорошо работает.

+0

Мне понравилось, что вы сказали, но он по-прежнему не работает: (любые другие идеи?) Есть вопросы? –

+0

Есть ли способ заставить объект разметки еще раз, когда коллекция признаков изменилась? –

+0

@ BartłomiejSemańczyk Well , Я не думаю, что есть способ заставить его.Поскольку, когда макет изменился по горизонтали или по вертикали, система iOS должна правильно вычислить все черты, чтобы соответствовать макету. Возможно, вы можете немного взломать это в коде, m не совсем уверен. Взгляните на этот документ https://developer.apple.com/documentation/uikit/uitraitenvironment –