【问题标题】:UIView under Navigation Bar after full screen全屏后导航栏下的UIView
【发布时间】:2016-12-16 14:24:16
【问题描述】:

我有一个带有导航栏的应用程序。 当我在我的应用程序中单击照片预览时,它会全屏显示照片。但是当我关闭全屏时,我的控制器的视图在导航栏下方。

我在 StackOverflow 上看到有必要添加这一行:

self.edgesForExtendedLayout = []

它可以工作,但它会产生另一个错误。 所以我想知道是否还有其他选择?

更新:

【问题讨论】:

  • 它还会产生什么其他错误?无论如何,从 iOS 7 开始,这是 iOS 应用程序的默认布局:UIViewController 的视图在导航栏下方扩展,但您可以使用布局边缘和其他属性来控制它。
  • 相关视图的约束是如何设置的?
  • 在发布照片预览之前,我会展示一个手动制作的加载器。并且通过添加这行代码,加载器被转移。

标签: ios swift navigationbar


【解决方案1】:

1- 使您的导航栏不透明。

self.navigationController.navigationBar.translucent = NO;

2- 如果您使用 Xib,请在文件检查器中检查“安全区域布局指南”,如下所示。

3- 如果你想以编程方式进行,那么在添加视图之后

self.yourView.translatesAutoresizingMaskIntoConstraints = false;
if (@available(iOS 11, *)) {
    UILayoutGuide * guide = self.view.safeAreaLayoutGuide;
    [self.yourView.leadingAnchor constraintEqualToAnchor:guide.leadingAnchor].active = YES;
    [self.yourView.trailingAnchor constraintEqualToAnchor:guide.trailingAnchor].active = YES;
    [self.yourView.topAnchor constraintEqualToAnchor:guide.topAnchor].active = YES;
    [self.yourView.bottomAnchor constraintEqualToAnchor:guide.bottomAnchor].active = YES;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    相关资源
    最近更新 更多