簡體   English   中英

如何在Swift中使iPhone狀態欄透明?

[英]How do I make the iPhone status bar transparent in Swift?

我希望隱藏導航和狀態欄以使其透明。 我下面有一張要占據整個空間的圖像。 到目前為止,我必須隱藏導航欄,但狀態欄仍為白色-這在viewDidLoad()

self.navigationController?.setNavigationBarHidden(true, animated: true)

另外,如何將后退按鈕重新添加到導航欄中?

謝謝!

我當前的iPhone模擬器的屏幕截圖:

在此處輸入圖片說明

添加Mohy Gh的代碼后的屏幕截圖

根據Mohy Gh的代碼進行編輯:

Swift 3:對於整個應用程序:

在您的AppDelegatedidFinishLaunchingWithOptions方法中執行此操作,而不是隱藏導航欄:

// Sets navigationBar's background to a blank/empty image       
UINavigationBar.appearance().setBackgroundImage(UIImage(),
                                                for: .default)

// Sets shadow (line below the bar) to a blank image
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().isTranslucent = true

編輯:在您的View控制器中隱藏一個特定View控制器的navigationBar的操作如下:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    let navigationBar = self.navigationController?.navigationBar

    navigationBar?.setBackgroundImage(UIImage(), for: .default)
    navigationBar?.shadowImage = UIImage()
    navigationBar?.isTranslucent = true
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    let navigationBar = self.navigationController?.navigationBar

    navigationBar?.shadowImage = nil
    navigationBar?.setBackgroundImage(nil, for: .default)
    navigationBar?.isTranslucent = false
}

使得之后navigationBar透明,您需要在設置imageView頂級制約topLayoutGuid = 0

如果您還想隱藏一個viewController statusBar ,也可以將其放在所需的viewController中:

override var prefersStatusBarHidden: Bool {
    return true
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM