TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Nov 2017 |
Maintained by bingozb.
蛋壳下拉菜单
cocoapods
安装pod 'DKPullDownMenu'
Clone or Download
,将DKPullDownMenu
文件夹整个拖到你的项目中引用头文件
#import "DKPullDownMenu.h"
构建选项
// title : 菜单选项主标题
// subTitles : 弹出菜单子选项
DKPullDownMenuSingleSelectItem *singleItem = [DKPullDownMenuSingleSelectItem itemWithTitle:@"Single" subTitles:@[@"Single A",@"Single B"]];
// 根据需求给属性赋值
// singleItem.optionMenuHeight = 200; // 弹出菜单总高度
// singleItem.optionRowHeight = 50; // 弹出菜单行高度
// singleItem.titleSelectColor = [UIColor redColor]; // 标题字体选中颜色
// singleItem.normalImage = [UIImage imageNamed:@"titleBtn_down"]; // 标题按钮未选中状态图片
// singleItem.selectImage = [UIImage imageNamed:@"titleBtn_up"]; // 标题按钮选中状态图片
// singleItem.singleSelectImage = [UIImage imageNamed:@"ic_selected"]; // 子菜单选中图片
DKPullDownMenuMultiSelectItem *multiItem = [DKPullDownMenuMultiSelectItem itemWithTitle:@"Mulit" subTitles:self.multiSubTitles];
// 根据需求给属性赋值
// multiItem.optionMenuHeight = 300;
// multiItem.optionRowHeight = 80;
// multiItem.multiNormalImage = [UIImage imageNamed:@"ic_unselected"]; // 多选行的普通状态图片
// multiItem.multiSelectImage = [UIImage imageNamed:@"ic_selected"]; // 多选行的选中状态图片
// multiItem.confirmBackgroundColor = [UIColor redColor]; // 确定按钮的背景颜色
multiItem.subTitleTotal = @"Total"; // "全选"行的文字
multiItem.confirmTitle = @"Confirm"; // 底部确定按钮的标题
// multiItem.confirmCornerRadius = 5.f; // 底部确定按钮的圆角半径
当提供的单选和多选以及暴露的属性无法满足需求时,可以完全自定义菜单。
// 构建一个自定义的控制器 选择的逻辑代码都写在该控制器中
DKCustomDemoViewController *customVc = [[DKCustomDemoViewController alloc] init];
// 用自定义的控制器初始化一个自定义的item
DKPullDownMenuCustomItem *customItem = [DKPullDownMenuCustomItem itemWithTitle:@"Custom" customViewController:customVc];
// customItem.optionMenuHeight = 400;
/*
DKPullDownMenuTitleDidUpdatedNotification : 菜单更新通知
userInfo : 字典
- key : 菜单选项标题
- value : 选择的结果,可以是字符串,也可以是字符串数组
*/
[[NSNotificationCenter defaultCenter] postNotificationName:DKPullDownMenuTitleDidUpdatedNotification object:nil userInfo:@{@"customItem":@"choose value"}];
userInfo
需要传多一对键值// kPullDownMenuEnableCallBack 不传默认为YES
userInfo:@{@"customItem":@"choose value", kPullDownMenuEnableCallBack:@(NO)}
创建菜单
DKPullDownMenu *menu = [[DKPullDownMenu alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, 44)];
menu.delegate = self; // 设置代理
self.menu = menu;
[self.view addSubview:menu];
// 添加菜单项
menu.pullDownMenuItems = @[singleItem,multiItem,customItem];
// 设置菜单自定义属性
// menu.separateLineTopMargin = 10; // 分割线距离顶部(底部)的间距
// menu.coverColor = [UIColor lightGrayColor]; // 设置蒙版颜色
// menu.separateLineColor = [UIColor lightGrayColor]; // 设置分割线颜色
// menu.separateLineWidth = 0; // 设置分割线宽度
// menu.headSeparateLineAvailable = NO; // 是否显示顶部分割线
// menu.bottomSeparateLineAvailable = YES; // 是否显示底部分割线
Delegate
<DKPullDownMenuDelegate>
/**
* 菜单全部选中结果回调
* @param pullDownMenu 下拉菜单
* @param results 选择的结果集合
*/
- (void)pullDownMenu:(DKPullDownMenu *)pullDownMenu selectedResultsDidUpdated:(NSArray<DKPullDownResult *> *)results
{
[results enumerateObjectsUsingBlock:^(DKPullDownResult * _Nonnull result, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"选项:%@ 选择结果:%@",result.title, result.subTitles);
}];
}
/**
* 菜单单个选中结果回调
* @param pullDownMenu 下拉菜单
* @param result 选择的结果
*/
- (void)pullDownMenu:(DKPullDownMenu *)pullDownMenu selectedResultDidUpdated:(DKPullDownResult *)result
{
NSLog(@"选项:%@ 选择结果:%@",result.title, result.subTitles);
}