swift - 如何在 swift 5 中隐藏状态栏?

标签 swift xcode hide statusbar

当我滚动时,导航栏和状态栏隐藏 而且效果很好 但是当我转到另一个页面并返回第一页时,导航栏会隐藏,但状态栏不会再次隐藏。 我想在滚动时隐藏状态栏。比如导航栏

这是我的代码:

class ViewController: UIViewController {
@IBOutlet weak var View_Mor: UIView!
override func viewDidLoad() {
    super.viewDidLoad()
    navigationController?.hidesBarsOnSwipe = true
}
override var prefersStatusBarHidden : Bool {
    if self.navigationController?.isNavigationBarHidden == true {
        return true
    } else {
        return false
    }
}

}

@IBAction func gotosecondvc(_ sender: UIBarButtonItem) {
    let st = UIStoryboard(name: "Main", bundle: nil)
    let vc = st.instantiateViewController(withIdentifier: "secondvc")
    vc.modalPresentationStyle = .overFullScreen
    present(vc,animated: true,completion: nil)
    }

最佳答案

你能做的就是实现这个功能。

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    if scrollView.isTracking {   
    // ... perform actions
         //MARK:- Show Status Bar
         UIApplication.shared.isStatusBarHidden = true
    } else {
    //.. not tracking
        //MARK:- Hide Status Bar
        UIApplication.shared.isStatusBarHidden = false
    }
}

然后,您可以检测用户何时拖动 ScrollView ,并根据您想要执行的操作和时间执行操作。

我希望这会有所帮助。

编辑——-

private var hideStatusBar: Bool = false

override var prefersStatusBarHidden: Bool {
    return hideStatusBar
}

override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
    return UIStatusBarAnimation.slide
}

用法

   func scrollViewDidScroll(_ scrollView: UIScrollView) {

        if scrollView.isTracking {   
        // ... perform actions
             hideStatusBar = true 
        } else {
        //.. not tracking
            hideStatusBar = false 
        }
    }

关于swift - 如何在 swift 5 中隐藏状态栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59381076/

相关文章:

ios - 在 ScrollView 中放置了一个 TableView ,现在我无法使用滑动来删除

Swift UIDatePicker 不显示初始值

xcode - 使用 Apple 的私有(private)框架 UXKit 进行 MacOS 应用程序开发是否安全?

jquery - 尝试使用模糊功能显示 <div> 元素

swift - 如何允许用户更改字体 Swift

ios - 根据传入的值显示大量文本

ios - 无法使用 cocoapods 安装 Firebase。它说 "Unable to get local issuer certificate"

ios - 如何通过 CocoaPods 使用本地项目

javascript - 如何隐藏jquery中的所有div

html - 向搜索引擎以外的所有人显示灯箱?