RevealMenuController 0.4.0

RevealMenuController 0.4.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2018年12月
SPM支持 SPM

anatoliyv 维护。



RevealMenuController

RevealMenuController Version License Platform ![](https://img.shields.io/badge/Swift 3 兼容-4BC51D.svg?style=flat)

易于实现的控制器,具有展开菜单项。设计非常类似于 iOS 原生 UIAlertController 的操作表显示风格。作为一个附加功能,您可以在菜单项文本旁边设置小图像图标。查看示例截图以查看所有可用功能。

功能

  • 展开菜单组
  • 自定义显示位置(顶部、中部或底部)
  • 自定义文本对齐
  • 菜单项可以有图像

这里有一些截图,显示了可能的用途。我还添加了一个 小视频 (~5Mb),您可以在其中看到无需安装和启动演示项目即可运行的实时示例。

RevealMenuController

安装

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 文件。