【问题标题】:Can I edit status bar height as spesific?我可以根据具体情况编辑状态栏高度吗?
【发布时间】:2018-08-20 02:05:22
【问题描述】:

在 iOS 11 中,由于状态栏视图下降了 20 像素,但在 iOS 10 中运行良好,[iOS 11 中的状态栏比 iOS 10 中的常规多 20

In iOS 10

用于生成自定义导航栏
在类 Base 是其中一个函数,把这个类继承到我的视图控制器,然后编译就好了。

在 iOS 10 中按预期显示,但在 iOS 11 中不显示

     func setUpNavBar() {

    self.navigationController?.navigationBar.isHidden = true;

    navBar?.translatesAutoresizingMaskIntoConstraints = false
    navBar?.lblTitle.text = self.title
    navBar?.ViewController = self




    navBar?.btnmenu.addTarget(self, action: #selector(menuTapped), for: .touchUpInside)
    navBar?.btnHome.addTarget(self, action: #selector(homeTapped), for: .touchUpInside)
    self.view.addSubview(navBar!)
    let views = [ "navView": navBar]
    let horizontal = NSLayoutConstraint.constraints(withVisualFormat: "H:|-0-[navView]-0-|", options: NSLayoutFormatOptions(), metrics: nil, views: views)
    let vertical = NSLayoutConstraint.constraints(withVisualFormat: "V:|-[navView(64)]", options: NSLayoutFormatOptions(), metrics: nil, views: views)

    navBar?.internalview.contentMode = .scaleAspectFit
    view.addConstraints(horizontal)
    view.addConstraints(vertical)
}

【问题讨论】:

  • 您是否使用静态视图进行导航?
  • 嗯,是自定义视图
  • 在 iOS 10 中它按预期工作,但在 iOS 11 中却没有
  • @Shivaareddy 为什么不向我们展示代码。所以我们可以尝试并提供帮助。

标签: ios iphone


【解决方案1】:

我假设您的“64”值来自标准状态栏的高度 (20) + 导航栏的高度 (44)。

这在 iOS 10 上运行良好,因为视图在 y = 0 处添加。在 iOS 11 上,由于新的“安全区域布局”,视图可能不会在零处添加,这可能导致 y = 20。

我相信在您的情况下,您必须执行以下操作:

if #available(iOS 11.0, *) {
  let vertical = NSLayoutConstraint.constraints(withVisualFormat: "V:|-[navView(44)]", options: NSLayoutFormatOptions(), metrics: nil, views: views)
}
else {
  let vertical = NSLayoutConstraint.constraints(withVisualFormat: "V:|-[navView(64)]", options: NSLayoutFormatOptions(), metrics: nil, 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2021-04-26
    • 2012-11-16
    • 2020-04-11
    相关资源
    最近更新 更多