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");
}];