2015-09-30 2 views
2

Я установил панель инструментов этого кода для портретной ориентации:Правильный способ исправить положение UIToolbar после поворота

self.toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, 44)]; 

Он имеет разрыв в альбомной ориентации, потому что строка состояния скрыта по умолчанию:

enter image description here

Нужно ли обновлять рамку панели инструментов каждый раз (во избежание зазора) при повороте устройства и проверять ориентацию при загрузке текущего представления?

ИЛИ

есть другой способ, чтобы исправить это?

ответ

0

Вы можете добавить ограничения на панели инструментов вместо установки рамы: Что-то вроде этого

self.toolbar.translatesAutoresizingMaskIntoConstraints = NO; 
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[topLayoutGuide][toolbar(toolbarHeight)]" options:0 metrics:@{@"toolbarHeight": [NSNumber numberWithInt:44]} views:@{@"toolbar": self.toolbar}, @"topLayoutGuide":self.topLayoutGuide}]]; 
    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[toolbar]|" options:0 metrics:nil views:@{@"toolbar": self.toolbar}]]; 
+0

в этом случае ToolBar, перекрываются строкой состояния в портретной ориентации – alexk

+0

@ sx00 Проверьте мой отредактированный ответ. Это должно сделать это. Я не учитывал topLayoutGuide. –

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