Я пытаюсь изменить положение UIViews при изменении ориентации iPhone. Когда iPhone находится в портретном режиме, я хочу, чтобы container view
был один поверх tableView
. В ландшафтном режиме они должны быть бок о бок (Container view
: слева; tableView
: справа). Я хочу сделать это, используя auto-layout
.Ошибка при использовании автоматической компоновки, но хорошо выглядит в симуляторе
Вот образ того, как я поставил его: (Изображение взято в:. Ш любой час договора)
В тренажере, все работает, как ожидалось. Но когда ориентация айфонов меняется, я получаю следующее сообщение об ошибке:
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x7f83f254b7d0 V:[UIView:0x7f83f2564230(272)]>",
"<NSLayoutConstraint:0x7f83f251d9f0 V:[_UILayoutGuide:0x7f83f250c270]-(0)-[UIView:0x7f83f2564230]>",
"<NSLayoutConstraint:0x7f83f244bd00 UITableView:0x7f83f28c8e00.bottom == _UILayoutGuide:0x7f83f252f700.top>",
"<NSLayoutConstraint:0x7f83f244bd50 V:[UIView:0x7f83f2564230]-(0)-[UITableView:0x7f83f28c8e00]>",
"<_UILayoutSupportConstraint:0x7f83f254b880 V:[_UILayoutGuide:0x7f83f250c270(64)]>",
"<_UILayoutSupportConstraint:0x7f83f24e4aa0 V:|-(0)-[_UILayoutGuide:0x7f83f250c270] (Names: '|':UIView:0x7f83f2567df0)>",
"<_UILayoutSupportConstraint:0x7f83f251d8e0 V:[_UILayoutGuide:0x7f83f252f700(49)]>",
"<_UILayoutSupportConstraint:0x7f83f2564300 _UILayoutGuide:0x7f83f252f700.bottom == UIView:0x7f83f2567df0.bottom>",
"<NSLayoutConstraint:0x7f83f257dec0 'UIView-Encapsulated-Layout-Height' V:[UIView:0x7f83f2567df0(375)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f83f254b7d0 V:[UIView:0x7f83f2564230(272)]>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
ошибка, вероятно, на самом деле просто, но я не понимаю. (Опять же, все выглядит нормально и нормально в симуляторе.)
Спасибо за ответ! Почему это должно возникать проблемы, если оно исчезает, когда в 'w Any h Compact'? Кроме того, мне нужно, чтобы высота просмотров контейнера составляла 272 в этом представлении. Что я могу сделать, чтобы исправить это? – Jessica
Он создает проблемы только тогда, когда он появляется _. Когда это произойдет, это будет так же, как сказал вам Уилл: ваши ограничения переопределены и не могут быть удовлетворены одновременно. Как он предположил, у вас, вероятно, есть верхнее ограничение и нижние ограничения _and_ ограничение по высоте, и это неправильно. – matt