Sam*_*D20 97 objective-c uinavigationbar ios uistatusbar ios7
更新到Xcode 5后,我所有应用程序视图中的导航栏都向下移动.下面是一些截图,第一个显示视图中的所有内容,因为它被拉下来,第二个显示所有内容都未触及.搜索栏应从导航栏开始.

有谁知道如何解决这个问题?
编辑:我之前尝试过这个建议:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone;
Run Code Online (Sandbox Code Playgroud)
但它产生了非常奇怪的结果.

这可能是因为我在此视图控制器下面有一个"幻灯片菜单",由于导航栏的透明度而出现.
Dee*_*esh 232
将导航栏的半透明属性设置为NO:
self.navigationController.navigationBar.translucent = NO;
Run Code Online (Sandbox Code Playgroud)
这将修复视图在导航栏和状态栏下面的框架.
If you have to show and hide the navigation bar, then use
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone; // iOS 7 specific
Run Code Online (Sandbox Code Playgroud)
in your viewDidLoad method.
Sum*_*dra 31
在iOS 7通过默认所有控制器半透明的属性值是YES,那么你设置透光性NO此问题.
self.navController.navigationBar.translucent = NO;
Run Code Online (Sandbox Code Playgroud)
upl*_*com 12
这适用于iOS 8.1上的swift
navigationController?.navigationBar.translucent = false
Run Code Online (Sandbox Code Playgroud)
如果你想保持半透明度navigationBar,在你viewDidLoad或你viewWillAppear添加这行代码的最后:
[self.view sendSubviewToBack:self.tableView]
Run Code Online (Sandbox Code Playgroud)
不知何故,如果您的scrollView子类(UITableView,UICollectionView等)index在当前视图中为0 subviews,它将根据您的情况自动调整insets navigationBar.它也不应该影响iOS7之前版本的UI.
编辑
如果以UITableView编程方式初始化,则最好使用此方法将其添加到视图中[self.view insertSubview:self.tableView atIndex:0];