我在 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
时,状态栏的颜色设置为白色。
抱歉,我不得不更改一些颜色,因为我无法展示整个设计。
最佳答案
当我开始理解这个问题是因为侧边菜单可以解决这个问题,我们有一个 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/