2015-11-26 3 views
0

Я пытаюсь почти то же самое, что и the OP of this question в Xcode7.Xcode7 - ограничение множителя равных высот, вызывающее конфликтующие ограничения

Моя конечная цель состоит в том, чтобы иметь вертикальный StackView с двумя дочерними видами: один, который занимает 70% от высоты родителя, и тот, который занимает оставшиеся 30%.

Я следил за инструкциями в сообщении, которое я связал. Я выбрал дочерний вид (который является GMSMapView) и родителем StackView и проверил поле equal heights в меню ограничений Pin. Это сработало просто отлично и денди. Однако, когда я отредактировал это ограничение от инспектора размера GMSMapView и изменил множитель на .7, неожиданно я получил ошибку conflicting constraints!

Вот картина сцены я работаю прямо сейчас: The scene with the stack view

А вот картина ошибки:

The conflicting constraints!

Кто-нибудь знает, как разрешить эти конфликты ? Я попытался отключить Autoresize Subviews, но я не уверен, что работал, так как я не могу удалить некоторые ограничения, отображаемые в сообщении об ошибке.

ответ

0

Высота UIStackView основана на размере его подвид (без использования UIStackViewDistributionFillEqually).

Первые две противоречащие друг другу ограничения оценки к этому

Stack View.height = View.height 
Map View.height = 0.7 x Stack View.height 

Но так как UIStackView оснований его высота на его подвидов, то, по существу, третье ограничение.

Stack View.height = Map View.height 

Все эти ограничения не могут существовать вместе, поскольку они конфликтуют.


Есть два варианта, о которых я могу думать.

Удалить UIStackView. Поскольку он содержит только один вид, вы не получаете никакой пользы от его использования, и это только усложняет ситуацию.

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

+0

Я хотел бы добавить третий вариант (на самом деле это исправила мою проблему): добавьте второй дочерний элемент 'StackView' и установите его для заполнения оставшегося' .3 x Stack View.height'. Ваше утверждение 'Но поскольку UIStackView основывает свою высоту на своих подзаголовках, есть, по сути, третье ограничение, - это то, что намекнуло мне, что решение состояло в том, чтобы просто заполнить всю высоту« StackView », чтобы совместить конфликтующие ограничения. Поскольку это был мой план с самого начала, все сработало. – scottyseus

+0

Я бы сказал, что удаление 'UIStackView' является лучшим решением, поскольку оно делает не что иное, как' UIView'. –

+0

Подождите ... что именно представляет собой 'StackView'? – scottyseus

Смежные вопросы