ios - 如何防止 UINavigationBar 在 iOS 7 中覆盖 View 顶部?

更新到 Xcode 5 后,我所有应用 View 中的导航栏都向下移动了。这是一些屏幕截图,第一个显示 View 被下拉时的所有内容,第二个显示所有未触及的内容。搜索栏应该从导航栏开始。

有人知道我该如何解决这个问题吗?

编辑:我以前尝试过这个建议:

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;

但它会产生非常奇怪的结果。

这可能是因为我在这个 View Controller 下有一个“幻灯片菜单”,由于导航栏的透明度而出现。

最佳答案

导航栏的半透明属性设置为NO:

self.navigationController.navigationBar.translucent = NO;

这将修复 View 在导航栏和状态栏下方的框架。

如果必须显示和隐藏导航栏,请使用

 if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone;   // iOS 7 specific

在您的 viewDidLoad 方法中。

https://stackoverflow.com/questions/18953509/

相关文章:

objective-c - 更改 UIButton 文本

iphone - 如何获得精确的时间,例如在 Objective-C 中以毫秒为单位?

ios - 带有固定部分标题的 UITableView

ios - 了解 NSRunLoop

objective-c - iOS:比较两个日期

iphone - 如何从 UITableViewCell 获取 UITableView?

objective-c - 获取对 iOS 应用程序中最顶层 View /窗口的引用

iphone - presentModalViewController :Animated is d

ios - 如何屏蔽 UIImageView?

objective-c - iPad 纵向和横向模式的尺寸调整类