DrawerMenu
对应左右
简单 DrawerMenu
演示
滑动 | 滑动进入 | 覆盖 | 视差 | 浮动 |
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
要求
- iOS 10.0 或更高版本
- Swift 5.0 或更高版本
安装
Cocoapods
pod 'DrawerMenu'
Carthage
github "y-hryk/DrawerMenu"
使用方法
设置
导航到 ViewContrller 的子页面
import DrawerMenu
class ApplicationRootViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let left = UIStoryboard(name: "Left", bundle: nil).instantiateInitialViewController()!
let center = UIStoryboard(name: "Center", bundle: nil).instantiateInitialViewController()!
let drawer = DrawerMenu(center: center, left: left)
addChild(drawer)
view.addSubview(drawer.view)
drawer.didMove(toParent: self)
}
}
RootViewController
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.main.bounds)
window?.backgroundColor = .white
let left = UIStoryboard(name: "Left", bundle: nil).instantiateInitialViewController()!
let center = UIStoryboard(name: "Center", bundle: nil).instantiateInitialViewController()!
let drawer = DrawerMenu(center: center, left: left)
window?.rootViewController = drawer
window?.makeKeyAndVisible()
return true
}
从 ViewContrller 访问 drawer 菜单
import DrawerMenu
drawer()?.open(to: .left)
打开或关闭
import DrawerMenu
// method call
drawer()?.open(to: .left)
drawer()?.open(to: .left, animated: true, completion: {
})
drawer()?.close(to: .right)
drawer()?.close(to: .right, animated: true, completion: {
})
// open or close status
drawer()?.isOpenLeft
drawer()?.isOpenRight
// panGesture settings
drawer()?.panGestureType = .none
drawer()?.panGestureType = .pan
drawer()?.panGestureType = .screenEdge
替换CenterViewController
let vc = UIViewController()
let nc = UINavigationController(rootViewController: vc)
drawer()?.replace(center: nc)
样式
请参考样式类中的详细说明,例如阴影和细节
let drawer = DrawerMenu(center: center, left: left)
drawer.style = SlideIn()
自定义样式
您可以自定义样式。
import DrawerMenu
struct CustomStyle: DrawerMenuStyle {
func setup(drawer: DrawerMenu) {
// Initialize. Change the hierarchy of view
}
func leftProgress(menuWidth: CGFloat, drawer: DrawerMenu) -> CGFloat {
// Current progress of left menu.
// open = 1, close = 0
}
func rightProgress(menuWidth: CGFloat, drawer: DrawerMenu) -> CGFloat {
// Current progress of right menu.
// open = 1, close = 0
}
func leftTransition(menuWidth: CGFloat, progress: CGFloat, drawer: DrawerMenu) {
// Operate the left menu
}
func rightTransition(menuWidth: CGFloat, progress: CGFloat, drawer: DrawerMenu) {
// Operate the right menu
}
}
许可协议
DrawerMenu遵循MIT许可协议。更多信息请参阅LICENSE文件。