ios - 在 iOS 的自定义抽屉导航中状态栏颜色更改为白色?

标签 ios swift xcode statusbar

我在 swift 中创建了一个自定义抽屉导航。我使用了应用程序委托(delegate)的窗口并在窗口上添加了一个 View 。在我隐藏按钮点击后显示 View 。

下面是创建抽屉的代码。

func setupSideMenu(){

        windowSideMenu = ((UIApplication.shared.delegate?.window)!)!
        windowSideMenu.backgroundColor = UIColor.black
        if customView == nil {
            print("custom view nil")
            // Register Swipe gesture for opening slideMenu
            let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.openSideMenu))
            swipeRight.direction = UISwipeGestureRecognizerDirection.right
            self.view.addGestureRecognizer(swipeRight)

            /// Register Drawable NIB here only for once
            customView = SideView.instanceFromNib() as! SideView
            customView.configureDrawer()
            customView.navigationController = self.navigationController
            customView.frame = CGRect(x: -customView.frame.size.width, y: -10, width: self.view.bounds.size.width - 30, height:UIScreen.main.bounds.height)
            customView.drawerDelegate = self

            /// BackView (DimView)
            backView.frame = self.view.frame
            backView.backgroundColor = UIColor.black
            backView.alpha = 0.4
            backView.isHidden = true
            self.view.addSubview(backView)
            let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.closeSideMenu))
            backView.addGestureRecognizer(tapGesture)
            customView.isHidden = true
            windowSideMenu.addSubview(customView)
            windowSideMenu.makeKeyAndVisible()

        }
    }

在隐藏和显示时,我更改了窗口级别 UIWindowLevel

  override func openSideMenu() {
        super.openSideMenu()
        self.windowSideMenu.windowLevel = UIWindowLevelStatusBar
    }

    override func closeSideMenu() {
        super.closeSideMenu()
        self.windowSideMenu.windowLevel = UIWindowLevelNormal

    }

但是当我将窗口级别更改为 UIWindowLevelStatusBar 时,状态栏的颜色设置为白色。

这是抽屉的屏幕截图 enter image description here

抱歉,我不得不更改一些颜色,因为我无法展示整个设计。

最佳答案

当我开始理解这个问题是因为侧边菜单可以解决这个问题,我们有一个 library非常容易定制

要设置或更改根、左或右 View Controller 或 View ,请调用:

sideMenuController.rootViewController = rootViewController
sideMenuController.leftViewController = leftViewController
sideMenuController.rightViewController = rightViewController

sideMenuController.rootView = rootView
sideMenuController.leftView = leftView
sideMenuController.rightView = rightView

希望对你有帮助

关于ios - 在 iOS 的自定义抽屉导航中状态栏颜色更改为白色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47448083/

相关文章:

ios - 我的数据格式有什么问题?

ios - 如何播放.ism/manifest文件?

ios - 在 swift 中单击 UILabel 时出现空白屏幕

swift - 惯用的 Swift : Getter & Setter boiler plate coding

ios - 无法将类型 'PFObject' 的值分配给 'PFObject!' 的值,Swift,Xcode

ios - 无法从设备读取

iOS : getting crash while choosing that see pageviewcontroller for first time that apps loaded

swift - 二元运算符 (*) 不能应用于操作数 CGPoint 和 CGFloat

ios - swift iOS - NSURLSession 无法正确下载多个文件

iphone - 在 iPhone 模拟器中运行项目后,Xcode 4.6 经常挂起