【问题标题】:I am not able to hide statusBar when I try to show a view尝试显示视图时无法隐藏状态栏
【发布时间】:2019-01-18 07:44:26
【问题描述】:

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

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
        }
    }

}

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

override var prefersStatusBarHidden: Bool {
    return true
}

注意:请不要标记为重复,因为我看过所有其他 答案,但它们都不起作用。我不想隐藏所有应用程序,只有当它显示视图时。

【问题讨论】:

    标签: swift ios-statusbar


    【解决方案1】:

    第 1 步: 在 Info.plist 文件中 单击加号按钮添加新密钥View controller-based status bar appearance 将值设置为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
    }
    

    【讨论】:

    • 我不想隐藏整个应用程序,只有当我显示该视图时。
    • 您可以根据自己的意愿使用“UIApplication.shared.isStatusBarHidden = true/false”(点击按钮等)
    【解决方案2】:

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

    var isVisible: Bool?
    

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

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

    【讨论】:

    • 拜托,如果您阅读了我指定的问题,我在 UIView 类上,不能覆盖它
    • 是什么阻止您使用 VC 并从该 vc 调用该视图?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多