2016-03-24 151 views
1

當我隱藏導航欄和工具欄時,我想隱藏狀態欄。功能中的隱藏狀態欄

我怎樣才能讓狀態欄隱藏在if NavigationBar.hidden == false && Toolbar.hidden == false{} ?? 我不知道如何做到這一點,我知道函數返回Statusbarhidden,但在整個ViewController多數民衆贊成,我會隱藏它的功能。

感謝您的幫助。

func ImageTapGesture() { 
    if NavigationBar.hidden == false && Toolbar.hidden == false{ 
     NavigationBar.hidden = true 
     Toolbar.hidden = true 

    } else if NavigationBar.hidden == true && Toolbar.hidden == true { 
     NavigationBar.hidden = false 
     Toolbar.hidden = false 

    } 
} 
+0

您是否看到此問題?這可能會幫助你 - http://stackoverflow.com/questions/18979837/how-to-hide-ios-status-bar – BLC

+0

但多數民衆贊成在完整的應用程序你的整個ViewController,但隱藏在一個功能我有沒有發現。你有一個想法,我怎麼能在一個功能? – Hindus

回答

0

一個斯威夫特2.x的兼容的解決方法,讓你有什麼需要做的:

func hideStatusBar(yOffset:CGFloat) { // -20.0 for example 
    let statusBarWindow = UIApplication.sharedApplication().valueForKey("statusBarWindow") as! UIWindow 
    statusBarWindow.frame = CGRectMake(0, yOffset, statusBarWindow.frame.size.width, statusBarWindow.frame.size.height) 
} 

func showStatusBar() { 
    let statusBarWindow = UIApplication.sharedApplication().valueForKey("statusBarWindow") as! UIWindow 
    statusBarWindow.frame = CGRectMake(0, 0, statusBarWindow.frame.size.width, statusBarWindow.frame.size.height) 
} 

要使用它,例如,你可以啓動:

hideStatusBar(-20.0) 
+0

感謝您的幫助。 – Hindus

1

下Swift語言,可以參考下面的代碼隱藏,不需要動畫效果可以註釋掉。

var isHidden:Bool = false 

    @IBAction func clicked(_ sender: AnyObject) { 
     isHidden = !isHidden 
     UIView.animate(withDuration: 0.5, animations: {() -> Void in 
      self.setNeedsStatusBarAppearanceUpdate() 
     }) 
    } 
    override var preferredStatusBarUpdateAnimation : UIStatusBarAnimation { 
     return UIStatusBarAnimation.slide 
    } 
    override var prefersStatusBarHidden : Bool { 
     return isHidden 
    } 

也可以參考下面的Demo的鏈接,是我編寫項目需求的時候。

Github上:https://github.com/ReverseScale/HiddenStatusBar

希望我能幫助你。