【问题标题】:how to adjust the position of the UINavigationBar in swift5?如何在swift 5中调整导航栏的位置?
【发布时间】:2019-11-12 07:09:25
【问题描述】:

我想重新定位 UINavigationBar。所以我用代码给了一个新的值,但它并没有改变。

@IBOutlet var headerBar: UINavigationBar!
let screenHeight = UIScreen.main.bounds.size.height
    override func viewDidLoad() {
        super.viewDidLoad()
        if screenHeight > 667 {
            headerBar = UINavigationBar(frame: CGRect(x: 0, y: 54, width: headerBar.frame.width, height: headerBar.frame.height))
        } else {
            headerBar = UINavigationBar(frame: CGRect(x: 0, y: 40, width: headerBar.frame.width, height: headerBar.frame.height))
        }
    }

我该如何解决这个问题?

我在主线程上运行,但没有任何变化。

@IBOutlet var headerBar: UINavigationBar!
let screenHeight = UIScreen.main.bounds.size.height
    override func viewDidLoad() {
        super.viewDidLoad()
        DispatchQueue.main.async {
            if self.screenHeight > 667 {
                self.headerBar = UINavigationBar(frame: CGRect(x: 0, y: 54, width: self.headerBar.frame.width, height: self.headerBar.frame.height))
            } else {
                self.headerBar = UINavigationBar(frame: CGRect(x: 0, y: 40, width: self.headerBar.frame.width, height: self.headerBar.frame.height))
            }
        }
    }

从主故事板查看的标题栏区域

注意:此标题栏被图片中的导航控制器栏遮挡。但我在代码中隐藏了导航控制器栏。

【问题讨论】:

  • 在主线程中调用你的条件。否则调用 viewDidAppear
  • 它已经在主线程中了。 (在viewDidLoad: 方法中)
  • @Anbu.Karthik 我在主线程上运行但没有任何变化。
  • @Mahendra 为什么不改?

标签: ios swift view uinavigationbar


【解决方案1】:

试试这个

    override func viewDidLoad() {
        super.viewDidLoad()
        DispatchQueue.main.async {
             let screenHeight = UIScreen.main.bounds.size.height
             let bounds = self.headerBar.bounds
           self.headerBar.frame = CGRect(x: 0, y: self.screenHeight > 667 ? 54 : 40, width:bounds.width, height: bounds.height )

        }
    }

【讨论】:

  • 谢谢。我可以再问你一个问题吗?
  • @iosbegindevel - 是的,当然
  • 我想让标题栏透明。但它不起作用。 headerBar.backgroundColor = UIColor.black.withAlphaComponent(0)
  • @iosbegindevel - 看到这个寻求帮助:Transparent UINavigationBar in Swift
  • 非常感谢。我很欣赏你的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
相关资源
最近更新 更多