DWNavMenu 1.0.6

DWNavMenu 1.0.6

测试已测试
语言语言 Obj-CObjective C
许可 Apache-2.0
发布最新发布2019年2月

Derrick Walker 维护。



DWNavMenu 1.0.6

  • 作者
  • Derrick Walker

DWNavMenu

一个高度可定制的 UIActionSheet 样式的菜单,具有简单导航和块处理

此类是类似于 UIActionSheet 的简单导航菜单。此类使使用块处理和简单导航创建无缝的菜单漏斗变得容易。包含 UIActionSheet 的所有功能,所有导航处理都由内部完成。还支持横竖屏幕方向切换。所有按钮大小、字体、颜色、间距等等都可以自定义,并可以在 DWNavMenu 头文件中找到。

注意,您只需导入 DWNavMenu 头文件,但您需要在项目中包括所有包含的源文件。

CocoaPods

pod 'DWNavMenu'

用法

您可以通过调用类或实例方法初始化器创建菜单。您可以使用 DWNavMenuAction 类添加按钮。此类只有一个初始化器,您可以在其中包含按钮标题,是否将菜单关闭,以及在点击时调用的块。

以下是一个创建包含只有一个取消按钮的 DWNavMenu 实例的示例。默认情况下,点击取消将始终关闭菜单,但是您可以选择为 cancelAction 设置块以执行额外操作。

DWNavMenu *someMenu = [DWNavMenu navMenuWithTitle:@"Sample Menu"
                                cancelButtonTitle:@"Cancel"
                                     cancelAction:nil
                                          buttons:nil];

这是将按钮添加到DWNavMenu的示例。通过向按钮参数传递DWNavMenuActions来创建按钮。

DWNavMenu *someMenu = [DWNavMenu navMenuWithTitle:@"Sample Menu"
                                cancelButtonTitle:@"Cancel"
                                     cancelAction:nil
                                          buttons:
                       [DWNavMenuAction menuActionWithTitle:@"This is a button"
                                          shouldDismissMenu:YES
                                               blockHandler:^{
                                                   NSLog(@"This button was tapped");
                                               }], nil];

如果您想将最后一个DWNavMenu推入另一个DWNavMenu的导航堆栈中,可以这样操作:

self.mainMenu = /* An already created DWNavMenu */
        
[self.mainMenu pushNavMenu:someMenu animated:YES];

所有推入的DWNavMenu都将自动添加一个返回按钮,它会从导航堆栈中弹出菜单。但是,如果您想手动执行此操作,只需调用popNavMenu。

[someMenu popNavMenuAnimated:YES];

您还可以添加具有破坏性样式的按钮,例如,如果您想显示带有视觉警告的删除或移除按钮,而与其他按钮区分开来。

self.mainMenu.destructiveMenuAction = [DWNavMenuAction menuActionWithTitle:@"Delete"
                                                         shouldDismissMenu:YES
                                                              blockHandler:^{
                                                                  NSLog(@"Delete button was tapped");
                                                              }];