>
Xcode 7
> iOS目标9.3
>斯威夫特2
我在Xcode中创建了一个新的Tabbed应用程序:
我将第一个模板生成的UIViewController超级视图的背景更改为灰色,然后运行应用程序,如此截图所示,第一个UIView与状态栏重叠:
我已经阅读了很多文章,特别是在iOS 7中为状态栏分配空间.
我还在apple.developer.com上读到以下引用:
“使用不透明的UINavigationController或UITabBarController的应用程序会自动将其内容保留在状态栏下方.”
一般来说,apple.developer.com网站上的这个链接似乎有点过时了.
但是,据说,我期待UITabBarController加载带标签的子视图,并为UITabBarController的Storyboard中显示的状态分配空间:
我尝试将以下内容添加到我的UITabBarController类中:
override func viewDidLoad() {
super.viewDidLoad()
self.edgesForExtendedLayout = UIRectEdge.None
self.automaticallyAdjustsScrollViewInsets = false;
}
我看了很多Stackoverflow问题和答案线程,我发现这个人在Stackoverflow上问了同样的问题:
Using UITabBarController but status bar covers view
我知道如何在每个UiViewController选项卡的每个父视图的顶部布局指南中添加约束,但我试图避免添加新的顶级UIView,因为我现有的UIViewControllers选项卡在SuperView中都有UILabels,UIButtons,UICollections等我无法在Xcode Storyboard中为SuperView的Top Layout Guide添加约束.
使用SuperView我无法通过控制拖动添加顶级约束似乎:
最佳答案 iOS在自动布局中为您处理此问题.当视图在状态栏下方延伸时,在“垂直间距到顶部布局指南”约束中将约束固定为0距离,您会发现它位于状态栏下方,如预期的那样.