iOS 封装电商通用筛选菜单,自由配置
2018-12-16 本文已影响281人
翻滚的炒勺2013

筛选菜单
京东筛选菜单
美团筛选菜单
电商通用筛选菜单

2019.1.1更新
+ 增加代理方法创建菜单
+ 增加数据源
使用方法:
GHDropMenu *dropMenu = [GHDropMenu creatDropMenuWithConfiguration:nil frame:CGRectMake(0, kGHSafeAreaTopHeight,kGHScreenWidth, 44) dropMenuTitleBlock:^(GHDropMenuModel * _Nonnull dropMenuModel) {
weakSelf.navigationItem.title = [NSString stringWithFormat:@"筛选结果: %@",dropMenuModel.title];
} dropMenuTagArrayBlock:^(NSArray * _Nonnull tagArray) {
[weakSelf getStrWith:tagArray];
}];
dropMenu.durationTime = 0.5;
dropMenu.delegate = self;
dropMenu.dataSource = self;
[self.view addSubview:dropMenu];
实现数据源方法:
// 返回筛选菜单标题的个数
- (NSArray *)columnTitlesInMeun:(GHDropMenu *)menu {
}
// 返回每列筛选菜单的选项
- (NSArray *)menu:(GHDropMenu *)menu numberOfColumns:(NSInteger)columns {
}
2018.12.30更新
+ 增加吸附效果的筛选菜单
+ 分别可选tableView悬浮菜单和collectionView悬浮菜单
+ 增加单独侧滑菜单筛选
+ dropMenu的title自适应宽度
+ 适配x,xs,xr,xsmax
+ 去掉刚开始创建的动画
+ 自定义筛选标题,自定义筛选内容,自定义筛选标签,自定义筛选头部内容
+ 数组越界处理
+ 价格输入筛选
+ 实现tag标签,单选,多选,取消选中效果
+ 保留上次选中选项
+ 动画展开,移除
+ 可以重新传入模型,重新刷新数据源
+ 选中内容通过代理的方式回调
+ 对原有项目无污染,直接拖进项目即可使用
- 去掉titleView初始化动画
- 修复无法点击bug
使用方法
- GHDropMenu文件夹 拖入项目中
- 导入
GHDropMenu.h
/** 配置筛选菜单模型 */
GHDropMenuModel *configuration = [[GHDropMenuModel alloc]init];
/** 配置筛选菜单是否记录用户选中 默认NO */
configuration.recordSeleted = NO;
/** 设置数据源 */
configuration.titles = [configuration creaDropMenuData];
/** 创建dropMenu 配置模型 &&frame */
GHDropMenu *dropMenu = [[GHDropMenu alloc]creatDropMenuWithConfiguration:configuration frame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44)];
dropMenu.delegate = self;
[self.view addSubview:dropMenu];
- 需要构造json数据
详见demo