主流的筛选菜单不少都是固定样式的,不少时候要使用都要去改变源码才能变成咱们想要的样子,因而我就想写一个控件,只须要调用代理就能实现几乎全部功能的筛选功能git
#目前已经用这控件实现的效果图 ⚠️⚠️⚠️⚠️无须改变源码 只须要调用个人代理组合功能便可⚠️⚠️⚠️⚠️github
#我手机只有这么一些app了。。~ ~ 总之,目前的app的筛选样式几乎都能实现,固然细节要本身去调编程
WMZDropMenuDelegate
@required 必定实现的方法
*/
- (NSArray*)titleArrInMenu:(WMZDropDownMenu *)menu;
/*
*返回WMZDropIndexPath每行 每列的数据
*/
- (NSArray*)menu:(WMZDropDownMenu *)menu
dataForRowAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
@optional 可选实现的方法
/*
*返回setion行标题有多少列 默认1列
*/
- (NSInteger)menu:(WMZDropDownMenu *)menu numberOfRowsInSection:
(NSInteger)section;
/*
*自定义tableviewCell内容 默认WMZDropTableViewCell 若是要使用默认的
cell返回 nil
*/
- (UITableViewCell*)menu:(WMZDropDownMenu *)menu
cellForUITableView:(WMZDropTableView*)tableView AtIndexPath:
(NSIndexPath*)indexpath dataForIndexPath:(WMZDropTree*)model;
/*
*自定义tableView headView
*/
- (UITableViewHeaderFooterView*)menu:(WMZDropDownMenu *)menu
headViewForUITableView:(WMZDropTableView*)tableView
AtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*自定义tableView footView
*/
- (UITableViewHeaderFooterView*)menu:(WMZDropDownMenu *)menu
footViewForUITableView:(WMZDropTableView*)tableView
AtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*自定义collectionViewCell内容
*/
- (UICollectionViewCell*)menu:(WMZDropDownMenu *)menu
cellForUICollectionView:(WMZDropCollectionView*)collectionView
AtDropIndexPath:(WMZDropIndexPath*)dropIndexPath AtIndexPath:
(NSIndexPath*)indexpath dataForIndexPath:(WMZDropTree*)model;
/*
*自定义collectionView headView
*/
- (UICollectionReusableView*)menu:(WMZDropDownMenu *)menu
headViewForUICollectionView:(WMZDropCollectionView*)collectionView
AtDropIndexPath:(WMZDropIndexPath*)dropIndexPath AtIndexPath:
(NSIndexPath*)indexpath;
/*
*自定义collectionView footView
*/
- (UICollectionReusableView*)menu:(WMZDropDownMenu *)menu
footViewForUICollectionView:(WMZDropCollectionView*)collectionView
AtDropIndexPath:(WMZDropIndexPath*)dropIndexPath AtIndexPath:
(NSIndexPath*)indexpath;
/*
*headView标题
*/
- (NSString*)menu:(WMZDropDownMenu *)menu
titleForHeadViewAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*footView标题
*/
- (NSString*)menu:(WMZDropDownMenu *)menu
titleForFootViewAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*返回WMZDropIndexPath每行 每列 indexpath的cell的高度 默认35
*/
- (CGFloat)menu:(WMZDropDownMenu *)menu heightAtDropIndexPath:
(WMZDropIndexPath*)dropIndexPath AtIndexPath:
(NSIndexPath*)indexpath;
/*
*自定义headView高度 collectionView默认35
*/
- (CGFloat)menu:(WMZDropDownMenu *)menu
heightForHeadViewAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*自定义footView高度
*/
- (CGFloat)menu:(WMZDropDownMenu *)menu
heightForFootViewAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
#pragma -mark 自定义用户交互的每行的头尾视图
/*
*自定义每行全局头部视图 多用于交互事件
*/
- (UIView*)menu:(WMZDropDownMenu *)menu
userInteractionHeadViewInSection:(NSInteger)section;
/*
*自定义每行全局尾部视图 多用于交互事件
*/
- (UIView*)menu:(WMZDropDownMenu *)menu
userInteractionFootViewInSection:(NSInteger)section;
#pragma -mark 样式动画相关代理
/*
*返回WMZDropIndexPath每行 每列的UI样式 默认MenuUITableView
注:设置了dropIndexPath.section 设置了 MenuUITableView 那么row则所有
为MenuUITableView 保持统一风格
*/
- (MenuUIStyle)menu:(WMZDropDownMenu *)menu
uiStyleForRowIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*返回section行标题数据视图出现的动画样式 默认
MenuShowAnimalBottom
注:最后一个默认是筛选 弹出动画为 MenuShowAnimalRight
*/
- (MenuShowAnimalStyle)menu:(WMZDropDownMenu *)menu
showAnimalStyleForRowInSection:(NSInteger)section;
/*
*返回section行标题数据视图消失的动画样式 默认 MenuHideAnimalTop
注:最后一个默认是筛选 消失动画为 MenuHideAnimalLeft
*/
- (MenuHideAnimalStyle)menu:(WMZDropDownMenu *)menu
hideAnimalStyleForRowInSection:(NSInteger)section;
/*
*返回WMZDropIndexPath每行 每列的编辑类型 单选|多选 默认单选
*/
- (MenuEditStyle)menu:(WMZDropDownMenu *)menu
editStyleForRowAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*返回WMZDropIndexPath每行 每列 显示的个数
注:
样式MenuUITableView 默认4个
样式MenuUICollectionView 默认1个 传值无效
*/
- (NSInteger)menu:(WMZDropDownMenu *)menu
countForRowAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*WMZDropIndexPath是否显示收缩功能 default >参数
wCollectionViewSectionShowExpandCount 显示
*/
- (BOOL)menu:(WMZDropDownMenu *)menu
showExpandAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*WMZDropIndexPath上的内容点击 是否关闭视图 default YES
*/
- (BOOL)menu:(WMZDropDownMenu *)menu
closeWithTapAtDropIndexPath:(WMZDropIndexPath*)dropIndexPath;
/*
*是否关联 其余标题 即选中其余标题 此标题会不会取消选中状态 default
YES 取消,互不关联
*/
- (BOOL)menu:(WMZDropDownMenu *)menu
dropIndexPathConnectInSection:(NSInteger)section;
#pragma -mark 交互自定义代理
/*
*cell点击方法
*/
- (void)menu:(WMZDropDownMenu *)menu
didSelectRowAtDropIndexPath:(WMZDropIndexPath *)dropIndexPath
dataIndexPath:(NSIndexPath*)indexpath data:(WMZDropTree*)data;
/*
*标题点击方法
*/
- (void)menu:(WMZDropDownMenu *)menu didSelectTitleInSection:
(NSInteger)section btn:(WMZDropMenuBtn*)selectBtn;
/*
*肯定方法 多个选择
selectNoramalData 转化后的的模型数据
selectData 字符串数据
*/
- (void)menu:(WMZDropDownMenu *)menu didConfirmAtSection:
(NSInteger)section selectNoramelData:(
NSMutableArray*)selectNoramalData selectStringData:
(NSMutableArray*)selectData;
/*
*自定义标题按钮视图 返回配置 参数说明
offset 按钮的间距
y 按钮的y坐标 自动会居中
*/
- (NSDictionary*)menu:(WMZDropDownMenu *)menu
customTitleInSection:
(NSInteger)section withTitleBtn:(WMZDropMenuBtn*)menuBtn;
/*
*自定义修改默认collectionView尾部视图
*/
- (void)menu:(WMZDropDownMenu *)menu
customDefauultCollectionFootView:(WMZDropConfirmView*)confirmView;
复制代码
参数 | 类型 | 做用 (默认值) |
---|---|---|
wBorderShow | BOOL | 标题视图是否显示边框 default NO |
wFixBtnWidth | CGFLoat | 固定标题的宽度 default 80 |
wMenuTitleEqualCount | NSInteger | 标题等分个数 用来控制标题的宽度 default 4 |
wMenuLine | BOOL | 标题按钮添加下划线 dfault NO |
###弹出视图相关相关app
参数 | 类型 | 做用 (默认值) |
---|---|---|
wFixDataViewHeight | CGFLoat | 固定弹出显示数据层的高度 default 自动计算~>最大为屏幕高度的0.4倍 |
wMainRadius | CGFLoat | 弹窗视图的圆角 默认0 |
wMaxWidthScale | CGFLoat | 最大屏幕宽度系数 default 0.9 |
wMaxHeightScale | CGFLoat | 最大屏幕高度系数 default 0.4 |
wDefaultConfirmHeight | CGFLoat | 默认肯定重置视图的高度 default 40 |
wPopViewWidth | CGFLoat | 弹出动画为pop时候 视图的宽度 default 屏幕宽度/3 |
wShadowColor | UIColor | 遮罩层颜色 default 333333 |
wShadowAlpha | CGFLoat | 遮罩层透明度 default 0.4 |
wShadowCanTap | BOOL | 遮罩层可否点击 default YES |
wShadowShow | BOOL | 遮罩层是否显示 default YES |
参数 | 类型 | 做用 (默认值) |
---|---|---|
wTableViewColor | NSArray | tableview的颜色 default @[FFFFFF,F6F7FA,EBECF0,FFFFFF] |
wTextAlignment | NSTextAlignment | cell文本居中样式 default left |
wCellSelectShowCheck | BOOL | tableViewCell 选中显示打钩图片 default YES |
参数 | 类型 | 做用 (默认值) |
---|---|---|
wReginerCollectionCells | NSArray | 注册自定义的collectionViewCell 若是使用了自定义collectionView 必填不然会崩溃 |
wReginerCollectionHeadViews | NSArray | 注册自定义的collectionViewHeadView 若是使用了自定义collectionViewHeadView 必填 |
wReginerCollectionFootViews | NSArray | 注册自定义的collectionViewFoootView 若是使用了自定义collectionViewFoootView 必填 |
wCollectionViewCellSpace | CGFloat | colletionCell的间距 default 10 |
wCollectionViewCellBgColor | UIColor | colletionCell背景颜色 default 0x666666 |
wCollectionViewCellTitleColor | UIColor | colletionCell文字颜色 default 0xf2f2f2 |
wCollectionViewCellSelectBgColor | UIColor | colletionCell选中背景颜色 default 0xffeceb |
wCollectionViewCellSelectTitleColor | UIColor | colletionCell选中文字颜色 default red |
wCollectionViewCellBorderWith | CGFloat | colletionCell borderWidth default 0 |
wCollectionViewSectionShowExpandCount | NSInteger | colletionView section 超过多少个cell显示收缩按钮 default 6 |
wCollectionViewSectionRecycleCount | NSInteger | colletionView section 回收时候显示的cell数量 default 0 |
wCollectionViewDefaultFootViewMarginY | CGFloat | colletionViewFootView 距离底部的距离 默认0 当iphonex机型为 20 |
wCollectionViewDefaultFootViewPaddingY | CGFloat | colletionViewFootView 距离顶部的距离 默认0 |
无任何依赖iphone
pod 'WMZDropDownMenu'
。pod install
或 pod update
。要在Buildding Settings 把CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF 设为NOide
使用过程当中若是有什么bug或者使用的问题欢迎给我提issue或者加我qq 我看到就会解决 以为有用的话给个star GitHub地址动画