Также как этот вопрос: Авто макет и строка состояния вызова и этот вопрос: Изменить размер для статуса вызова bar?, у меня возникают проблемы с панелью состояния In Call, прикручивающей мой макет представления.
Вот моя вложенная структура. У меня есть Custom Modal ViewController, который вложен в другой ViewController. Всякий раз, когда отображается строка состояния In Call (а затем закрыта), это происходит:
Вот изображение того, как оно должно выглядеть, прежде чем появится строка состояния вызова:
Синим цветом строки состояния после ошибки является цвет фона контроллера корневого представления.
Когда отображается строка состояния In Call, выводится следующая ошибка:
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:0x7fdac6192320 V:|-(20)-[UIInputSetContainerView:0x7fdac6190a40] (Names: '|':UITextEffectsWindow:0x7fdac6061a10 )>",
"<NSLayoutConstraint:0x7fdac608ebb0 'UIInputWindowController-top' V:|-(0)-[UIInputSetContainerView:0x7fdac6190a40] (Names: '|':UITextEffectsWindow:0x7fdac6061a10 )>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7fdac6192320 V:|-(20)-[UIInputSetContainerView:0x7fdac6190a40] (Names: '|':UITextEffectsWindow:0x7fdac6061a10 )>
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.
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:0x7fc60b03d230 V:|-(20)-[UIInputSetContainerView:0x7fc608d22020] (Names: '|':UITextEffectsWindow:0x7fc60b171720 )>",
"<NSLayoutConstraint:0x7fc60b03d2d0 UIInputSetContainerView:0x7fc608d22020.bottom == UITextEffectsWindow:0x7fc60b171720.bottom>",
"<NSLayoutConstraint:0x7fc60b17c4b0 'UIInputWindowController-height' UIInputSetContainerView:0x7fc608d22020.height == UITextEffectsWindow:0x7fc60b171720.height>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7fc60b03d2d0 UIInputSetContainerView:0x7fc608d22020.bottom == UITextEffectsWindow:0x7fc60b171720.bottom>
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.
Используя инструмент отладки FLEX, я вижу, что
UINavigationBarBackground
и UIStatusBarForegroundView
перекрываются до строки состояния In Call, однако UINavigationBarBackground
ниже UIStatusBarForegroundView
.
Эта ошибка возникает только после того, как я представляю Modal View Controller. Если я покажу строку состояния In Call, проблема не возникает. После просмотра диспетчера Modal View вы не можете вернуться в контроллер корневого представления.
Что я могу сделать, чтобы исправить это?