
易于实现的控制器,具有展开菜单项。设计非常类似于 iOS 原生 UIAlertController 的操作表显示风格。作为一个附加功能,您可以在菜单项文本旁边设置小图像图标。查看示例截图以查看所有可用功能。
功能
- 展开菜单组
- 自定义显示位置(顶部、中部或底部)
- 自定义文本对齐
- 菜单项可以有图像
这里有一些截图,显示了可能的用途。我还添加了一个 小视频 (~5Mb),您可以在其中看到无需安装和启动演示项目即可运行的实时示例。
安装
CocoaPods
RevealMenuController 通过 CocoaPods 提供。安装它,只需在 Podfile 中添加以下行
pod "RevealMenuController"
Cartage
将在 1.0 版本中添加支持
用法
初始化 RevealMenuController
并设置所需属性
let revealController = RevealMenuController(title: "Contact Support", position: .Center)
revealController.displayCancel = true // Display Cancel menu item
revealController.hideOnBackgorundTap = true // Hide menu when user taps outside of items area
revealController.statusBarStyle = .LightContent // Status bar style
现在您可以向菜单中添加操作。查看 image
属性:该菜单项将在文本文本旁边放置一个小的图标。
let webImage = UIImage(named: "IconHome")
let webAction = RevealMenuAction(title: "Open web page", image: webImage, handler: { (controller, action) in
// Code to support tap on this item
})
revealController.addAction(webAction)
添加操作组的方式非常相似
let emailImage = UIImage(named: "IconEmail")
let phoneImage = UIImage(named: "IconCall")
let techGroup = RevealMenuActionGroup(title: "Contact support", actions: [
RevealMenuAction(title: "[email protected]", image: emailImage, handler: { (controller, action) in
// Code to support tap on this item
}),
RevealMenuAction(title: "1-866-752-7753", image: phoneImage, handler: { (controller, action) in
// Code to support tap on this item
})
])
revealController.addAction(techGroup)
准备好显示控制器后调用
revealController.displayOnController(self)
外观动画取决于其位置
- 顶部:控制器的显示将具有从上到下的滑动动画。
- 中心:带有淡入动画的外观
- 底部:带有从下到上滑动动画的外观。
消失将有相反的动画。
消失
要消失 RevealMenuController
,请调用以下方法。折叠动画将与出现动画相反。
controller.dismissViewControllerAnimated(true, completion: {
// Completion block
})
RevealMenuAction
RevealMenuAction 可以通过几种方式初始化。动作标题始终是必需的。图像是一个可选值。默认文本对齐方式为 居中
。处理器也不是必需的,但如果您不指定此属性,则在用户点击此项目时将没有响应。
初始化器列表
init(title: String, image: UIImage?, alignment: NSTextAlignment, handler: RevealControllerHandler?)
init(title: String, image: UIImage?, handler: RevealControllerHandler?)
init(title: String, alignment: NSTextAlignment, handler: RevealControllerHandler?)
init(title: String, handler: RevealControllerHandler?)
RevealMenuActionGroup
动作组将保持几个 RevealMenuAction
。当用户按下此类菜单项组时,将展开并显示可用动作的列表。第二次点击将折叠动作列表。
动作组也有标题,可以是它自己的图标图像和文本对齐,类似于 RevealMenuAction
。唯一的区别是组没有点击处理器,而是动作数组的处理。
初始化器列表
init(title: String, image: UIImage?, alignment: NSTextAlignment, actions: [RevealMenuAction])
init(title: String, alignment: NSTextAlignment, actions: [RevealMenuAction])
init(title: String, image: UIImage, actions: [RevealMenuAction])
init(title: String, actions: [RevealMenuAction])
TODO
- 为 iPad 定制的自定义尺寸
- 菜单项标签定制(字体,颜色)
- 实现菜单标题
- 支持多行项
如果您有任何关于 RevealMenuController
可能还需要的其他功能的想法,请告诉我们或创建一个拉取请求。
作者
许可证
RevealMenuController
在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。