2017-07-30 21 views
2

我期待隱藏導航和狀態欄以使其透明。我在下面有一個圖像,我想佔據整個空間。到目前爲止,我隱藏導航欄,但狀態欄仍然是白色 - 這是在viewDidLoad()如何使Swift中的iPhone狀態欄透明?

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

另外,我怎麼可以重新添加後退按鈕的導航欄?

謝謝!我目前的iPhone模擬器

屏幕截圖:

enter image description here

Screen shot after add Mohy Gh's code

Mohy Gh的的代碼之後編輯:

回答

1

斯威夫特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 

編輯:隱藏navigationBar一個特定視圖控制器在您的瀏覽器這樣做:

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default) 
    self.navigationController?.navigationBar.shadowImage = UIImage() 
    self.navigationController?.navigationBar.isTranslucent = true 

} 

override func viewWillDisappear(_ animated: Bool) { 
    super.viewWillDisappear(animated) 
    self.navigationController?.navigationBar.shadowImage = nil 
    self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default) 
    self.navigationController?.navigationBar.isTranslucent = true 

} 

使得navigationBar透明需要經過設置你的imageView的最高限制爲topLayoutGuid等於0

如果你想要t Ø還隱藏statusBar一個viewController也把這個在您想要的viewController:

override var prefersStatusBarHidden: Bool{ return true }

+1

如果我只是想隱藏它只有一個特定的視圖控制器,而不是所有的人? – Sam

+0

@Sam我編輯了我的帖子:)如果它的工作,請選擇它作爲正確的答案:) –

+0

它到達那裏,但我其實不想隱藏狀態欄!我只是想要它,以便我的照片從狀態欄佔據整個空間並向下。這樣我仍然可以看到狀態欄,它的信息就在圖片上方。所以導航欄消失了,但狀態欄是透明的。更接近我的第一個屏幕截圖 – Sam