-1

statusBar当我view在屏幕上显示时,我想隐藏。

func showView() {

    if let keyWindow = UIApplication.shared.keyWindow{
        let view = UIView(frame: keyWindow.frame)
        view.backgroundColor = UIColor.black
        keyWindow.addSubview(view)

        UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
            view.frame = keyWindow.frame
        }) { (completedAnimnation) in
            //hide status bar when view is showed
            UIApplication.shared.isStatusBarHidden = true
        }
    }

}

这是我显示视图的代码,我尝试使用 : 隐藏 statusBar UIApplication.shared.isStatusBarHidden = true。而且,UIApplication.shared.setStatusBarHidden(true, with: .fade)但这些都不起作用。也不能override prefersStatusBarHidden因为我在UIView上课。

override var prefersStatusBarHidden: Bool {
    return true
}

注意:请不要标记为重复,因为我已经看到了所有其他答案,但没有一个有效。我不想隐藏所有应用程序,只有当它显示视图时。

4

2 回答 2

1

第1步: 在Info.plist文件中点击加号按钮添加新键View controller-based status bar appearance 将VALUE设置为NO

第 2 步: 用于隐藏在单个屏幕中

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

    UIApplication.shared.isStatusBarHidden = true
}

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

    UIApplication.shared.isStatusBarHidden = false
}

第 3 步:隐藏在整个应用程序中 AppDelegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
    application.statusBarHidden = true
    return true
}
于 2018-08-27T10:45:22.110 回答
0

我的建议是创建一个变量:

var isVisible: Bool?

当你想要的 UIView 出现时将其设置为 true,当它消失时设置为 false。

或者,只需使用 ViewController,并从那里呈现视图 -

于 2018-08-27T10:51:09.727 回答