JESideMenuController
JESideMenuController
是一个自定义容器控制器,用于管理侧边菜单和当前所选内容。它支持不同的风格,如:滑动退出、滑动进入(导航抽屉)以及同时滑动菜单和内容。此控制器支持故事板、通过代码初始化,并且与安全区域兼容。
特性
- 样式:滑动退出、滑动进入、滑动内联(同时滑动菜单和内容)
- 左侧或右侧
- 故事板和代码
- 纵向和横向
- 支持 iPhone 和 iPad
- 支持安全区域
滑动退出 | 滑动进入 | 滑动内联 |
---|---|---|
![]() |
![]() |
![]() |
要求
- iOS 10.0+
- Xcode 10.2+
- Swift 4.2+
安装
CocoaPods
要将 JESideMenuController
集成到您的项目中,请将以下行添加到您的 Podfile
pod 'JESideMenuController', '~> 1.0.0'
Carthage
Carthage 是一个分布式依赖管理器。要集成 JESideMenuController
,请将以下行添加到您的 Cartfile
,并按照指示将框架添加到您的应用程序中添加框架到应用程序
github "jaeilers/JESideMenuController" ~> 1.0.0
Swift Package Manager
Swift Package Manager 是 Cocoa 项目的官方依赖管理器。Xcode 11 直接集成了 Swift PM。将此存储库的 url 添加到 Xcode 中的依赖项,或者在 Package.swift
中添加以下行作为 dependencies
的值
dependencies: [
.package(url: "https://github.com/jaeilers/JESideMenuController.git", from: "1.0.0")
]
如何使用
通过代码设置
在初始化时,JESideMenuController
需要您的菜单视图控制器的引用,以便在选择不同的显示内容视图控制器和启动时显示的第一个根视图控制器。
let menuViewController = ...
let rootViewController = ...
let sideMenuController = JESideMenuController(rootViewController: rootViewController,
menuViewController: menuViewController)
...
默认值为左侧滑出。要选择不同的配置,请使用以下构造函数签名
...
let sideMenuController = JESideMenuController(rootViewController: rootViewController,
menuViewController: menuViewController,
style: .slideIn,
isLeft: true)
...
JESideMenuController.Style
的以下常量可用作样式参数的参数:.slideOut
、.slideIn
、.slideOutInline
。对于所有样式,都可用左和右位置。
故事板
将 JESideMenuController
设置为您的根视图控制器,在 Main.storyboard
中创建一个菜单(表格)视图控制器和根视图控制器。将 Storyboard 标识符作为值添加到 JESideMenuController
中用户定义的运行时属性 menuId
和 rootId
。它们也作为可检查属性可用。要配置位置(左侧/右侧),在可检查属性 isLeft
中输入布尔值。默认值为左侧菜单的 true
。要调整滑动器的样式,在 布局样式
中输入数字(0...2)
- 0: 滑出
- 1: 滑入
- 2: 滑出内联(Twitter样式)
更多信息,请参阅示例项目。
API - JESideMenuController
由于 UIViewController
扩展,您可以访问 JESideMenuController
实例。
public var sideMenuController: JESideMenuController? { get }
启用/禁用滚动
public var isScrollEnabled: Bool { get set }
设置新的视图控制器并隐藏菜单
/// Set and display a new root view controller and hide the menu (animated).
public func setViewController(_ viewController: UIViewController, animated: Bool)
// Example:
let newViewController = ...
sideMenuController?.setViewController(newViewController, animated: true)
切换菜单状态
/// Hides or reveals the menu based on the current state.
public func toggle(animated: Bool = true)
// Example:
sideMenuController?.toggle()
设置菜单状态
/// Set the hidden state of the menu. Optionally animated.
public func setMenuHidden(_ isHidden: Bool, animated: Bool)
// Example:
sideMenuController?.setMenuHidden(true, animated: true)
确定菜单状态
public var isMenuVisible: Bool { get }
// Example:
sideMenuController?.isMenuVisible
授权协议
本框架遵循MIT 许可协议发布。示例项目中使用的所有图标均来源于80 UI 线性图标,由 Kit of Parts 创作所有,版权© 2019 kitofparts.co