当我滚动时,导航栏和状态栏隐藏 而且效果很好 但是当我转到另一个页面并返回第一页时,导航栏会隐藏,但状态栏不会再次隐藏。 我想在滚动时隐藏状态栏。比如导航栏
这是我的代码:
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/