如何在swift中打开侧边菜单时添加透明背景?
How to add transparent background while open the side menu in swift?
我正在使用 jonkykong/SideMenu 中的左侧菜单。如果我打开侧面菜单,我需要透明背景视图,如果我关闭,那么背景应该变成原来的颜色。为此,我正在尝试为侧边菜单设置 alpha 值。
我试过两种方法:
1) 我在这里安装了 pod 'SideMenu'
并添加了以下代码:
import UIKit
import SideMenu
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
sideMenuConfig()
}
func sideMenuConfig(){
// Define the menus
SideMenuManager.default.menuLeftNavigationController = storyboard!.instantiateViewController(withIdentifier: "UISideMenuNavigationController") as? UISideMenuNavigationController
var set = SideMenuSettings()
set.presentationStyle.presentingEndAlpha = 1
SideMenuManager.default.menuPresentMode = .menuSlideIn
SideMenuManager.default.menuFadeStatusBar = false
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
SideMenuManager.default.menuAddScreenEdgePanGesturesToPresent(toView: self.navigationController!.view)
}
}
这里是 pod 无法识别 SideMenuSettings 的原因。
error: Use of unresolved identifier 'SideMenuSettings'
2) 将 pod 更新为 swift 5 pod 'SideMenu', '~> 6.0'
和以下代码:
import UIKit
import SideMenu
class ViewController: UIViewController, SideMenuNavigationControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
menuSettings()
}
func menuSettings(){
let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
menu.blurEffectStyle = nil
var set = SideMenuSettings()
set.statusBarEndAlpha = 0
set.presentationStyle = SideMenuPresentationStyle.menuSlideIn
set.presentationStyle.presentingEndAlpha = 0.5
set.menuWidth = min(view.frame.width, view.frame.height) * 0.90
menu.settings = set
SideMenuManager.default.leftMenuNavigationController = menu
}
}
此处背景视图也随着侧面菜单移动,如下所示
如何在 swift.
中向侧边菜单添加赋予 alpha 值
请帮助提供侧边菜单代码。
对于透明背景需要更改 menuAnimationFadeStrength 的值。
- 演示::
SideMenuManager.default.menuAnimationFadeStrength = 0.5
只需创建 SideMenuNavigationController 的子类并在其中设置 presentationStyle 的 backgroundColor 和 presentingEndAlpha 属性。从现在开始,您可以将 CustomSideMenuNavigationController 用作 SideMenuNavigationController。
class CustomSideMenuNavigationController: SideMenuNavigationController {
override func viewDidLoad() {
super.viewDidLoad()
setNavigationBarHidden(true, animated: false)
self.presentationStyle = .menuSlideIn
self.presentationStyle.backgroundColor = .white
self.presentationStyle.presentingEndAlpha = 0.7
self.statusBarEndAlpha = 0.0
self.menuWidth = (UIScreen.main.bounds.width / 5) * 4
}
}
我正在使用 jonkykong/SideMenu 中的左侧菜单。如果我打开侧面菜单,我需要透明背景视图,如果我关闭,那么背景应该变成原来的颜色。为此,我正在尝试为侧边菜单设置 alpha 值。
我试过两种方法:
1) 我在这里安装了 pod 'SideMenu'
并添加了以下代码:
import UIKit
import SideMenu
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
sideMenuConfig()
}
func sideMenuConfig(){
// Define the menus
SideMenuManager.default.menuLeftNavigationController = storyboard!.instantiateViewController(withIdentifier: "UISideMenuNavigationController") as? UISideMenuNavigationController
var set = SideMenuSettings()
set.presentationStyle.presentingEndAlpha = 1
SideMenuManager.default.menuPresentMode = .menuSlideIn
SideMenuManager.default.menuFadeStatusBar = false
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
SideMenuManager.default.menuAddScreenEdgePanGesturesToPresent(toView: self.navigationController!.view)
}
}
这里是 pod 无法识别 SideMenuSettings 的原因。
error: Use of unresolved identifier 'SideMenuSettings'
2) 将 pod 更新为 swift 5 pod 'SideMenu', '~> 6.0'
和以下代码:
import UIKit
import SideMenu
class ViewController: UIViewController, SideMenuNavigationControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
menuSettings()
}
func menuSettings(){
let menu = storyboard!.instantiateViewController(withIdentifier: "SideMenuNavigationController") as! SideMenuNavigationController
menu.blurEffectStyle = nil
var set = SideMenuSettings()
set.statusBarEndAlpha = 0
set.presentationStyle = SideMenuPresentationStyle.menuSlideIn
set.presentationStyle.presentingEndAlpha = 0.5
set.menuWidth = min(view.frame.width, view.frame.height) * 0.90
menu.settings = set
SideMenuManager.default.leftMenuNavigationController = menu
}
}
此处背景视图也随着侧面菜单移动,如下所示 如何在 swift.
中向侧边菜单添加赋予 alpha 值请帮助提供侧边菜单代码。
对于透明背景需要更改 menuAnimationFadeStrength 的值。
- 演示::
SideMenuManager.default.menuAnimationFadeStrength = 0.5
只需创建 SideMenuNavigationController 的子类并在其中设置 presentationStyle 的 backgroundColor 和 presentingEndAlpha 属性。从现在开始,您可以将 CustomSideMenuNavigationController 用作 SideMenuNavigationController。
class CustomSideMenuNavigationController: SideMenuNavigationController {
override func viewDidLoad() {
super.viewDidLoad()
setNavigationBarHidden(true, animated: false)
self.presentationStyle = .menuSlideIn
self.presentationStyle.backgroundColor = .white
self.presentationStyle.presentingEndAlpha = 0.7
self.statusBarEndAlpha = 0.0
self.menuWidth = (UIScreen.main.bounds.width / 5) * 4
}
}