Autolayout忽略了iOS7上的UITabBar(条形图下的内容)

Jac*_*ień 11 uitabbar ios7

我在故事板中将UITabBar设置为不透明,但我似乎仍然是透明的.当我设置自定义UITabBarController时setBarStyle,只有OpaqueBlack可用.

但那个问题最少.无论我做什么,我的视图内容都位于标签栏下方,就像它被ayutolayout忽略一样.在故事板上一切都很好.在运行时搞砸了什么?

哦,最重要的是.问题仅发生在iOS7上!

以下是storyboard中的ViewController设置:

在此输入图像描述

这里是有问题的内容(UITableView),它位于ios7应用程序的UITabBar下.但在故事板中看起来很好:

在此输入图像描述

最后是UITableView约束:

在此输入图像描述

Jac*_*ień 21

把它放在上面viewDidLoad,解决了这个问题:

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
    [self setEdgesForExtendedLayout:UIRectEdgeNone];
}
Run Code Online (Sandbox Code Playgroud)

  • 而不是检查特定版本,最好检查选择器是否存在:`if([self respondsToSelector:@selector(setEdgesForExtendedLayout :)])` (5认同)

小智 9

xCode还提供了编程功能:

[self setEdgesForExtendedLayout:UIRectEdgeNone];
Run Code Online (Sandbox Code Playgroud)

在您的故事板中,通过Extend Edges部分为给定的ViewController :

在此输入图像描述

只需禁用Under Top BarsUnder bottom Bars选项.它们默认处于启用状态.