旋转后修正UIToolbar位置的正确方法

时间:2015-09-30 20:15:49

标签: ios objective-c orientation uitoolbar

我通过此代码设置工具栏以纵向显示:

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

横向方向存在差距,因为状态栏默认隐藏:

enter image description here

我是否需要在设备旋转时每次更新工具栏框架(以避免间隙)并在加载当前视图时检查方向?

还有另一种解决方法吗?

1 个答案:

答案 0 :(得分: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}]];