2016-04-26 2 views
-3

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

Попробуйте это:

(1) смотреть на каждое ограничение и попытаться выяснить, чего вы не ожидаете;

(2) найти код, который добавил нежелательные ограничения или ограничения и исправить его. (

"<NSLayoutConstraint:0x7f844b716390 H:|-(30)-[UIButton:0x7f844b4be3c0'LOGIN'] (Names: '|':UIView:0x7f844b492a80)>", 
    "<NSLayoutConstraint:0x7f844b706ee0 H:[UIButton:0x7f844b4be3c0'LOGIN'(100)]>", 
    "<NSLayoutConstraint:0x7f844b705dd0 H:[UIButton:0x7f844b4be3c0'LOGIN']-(80)-[UIButton:0x7f844b4c0520'SIGNUP']>", 
    "<NSLayoutConstraint:0x7f844b706f30 H:[UIButton:0x7f844b4c0520'SIGNUP'(100)]>", 
    "<NSLayoutConstraint:0x7f844b7147c0 H:[UIButton:0x7f844b4c0520'SIGNUP']-(30)-| (Names: '|':UIView:0x7f844b492a80)>", 
    "<NSLayoutConstraint:0x7f844b519f70 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7f844b492a80(375)]>" 
) 

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x7f844b705dd0 H:[UIButton:0x7f844b4be3c0'LOGIN']-(80)-[UIButton:0x7f844b4c0520'SIGNUP']> 
+0

https://autolayoutconstraints.com/ <- используйте этот сайт для программирования программ с программным обеспечением. –

ответ

2

Это означает, что ваши ограничения не удовлетворяют с любой точки зрения. Например, если у вас есть вид с размерами 50х50. И позиционируется в точном центре. Теперь, если вы даете ограничения, как Горизонтально центр в контейнере и ведущее ограничение, как всегда, держит расстояние 0 с передним фронтом (левым краем), тогда оно создает неоднозначность. Оно не может удовлетворять обоим ограничениям: может ли он оставаться в центре или он может управлять расстоянием 0 с передним краем, но оба они не могут удовлетворить это дает ошибку, например unable to simultaneously satisfy constraints.

Итак, в вашем случае проверьте все связанные ограничения. Если какие-либо ограничения неоднозначны, тогда удалите его, и никакое ограничение не будет добавлено.

Надеется, что это поможет :)

0

Это обычное сообщение видны в консоли при использовании Autolayout. Это вызвано некоторыми ошибками, которые вы сделали при создании ограничений для просмотра объектов. Внимательно проверьте все ограничения. В это время представление может отображаться правильно. Но на другом устройстве с разными размерами экрана и ориентацией вид может нарушаться. Возможно, вы пропустили одно или два ограничения для представления, добавили неоднозначные ограничения для представления и т. Д.

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