IOS7 скрывает строку состояния, но не настраивает руководство по началу размещения

Я занимаюсь автозапуском, созданным в Interface Builder. Я хочу, чтобы не смещать представления, прикрепленные к руководству верстки, когда я скрываю строку состояния во время выполнения.

Я обнаружил, что myViewController.topLayoutGuide.length изменяется с 20 на 0 при скрытии строки состояния. Как предотвратить это? Или (в качестве обходного пути), как настроить полноэкранный вид для разных размеров окна без руководства по верстке вверху?

Некоторый код для описания моей ситуации:

Log(@"frame: %@, top: %.0f", NSStringFromCGRect(myViewController.myView.frame), self.topLayoutGuide.length);
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
Log(@"frame: %@, top: %.0f", NSStringFromCGRect(myViewController.myView.frame), self.topLayoutGuide.length);

Вывод:

frame: {{40, 24}, {240, 40}}, top: 20
frame: {{40, 4}, {240, 40}}, top: 0

Ответ 1

Свойство topLayoutGuide доступно только для чтения, и вы не можете предотвратить его изменение.

Вы можете привязать свои элементы не к topLayoutGuide, а к супервизу. Это должно решить вашу проблему.

enter image description here