你的位置:首页 > 操作系统

[操作系统]IOS 下拉菜单复用


  由于之前曾经用到过下拉菜单,所以现在花一些时间回过头来细细整理了一下,逐步完善这个下拉菜单,并提供一些比较基本的功能,以便日后如果有需要的话可以进行复用,并提供给需要的人参考。下拉菜单同样分为数据源和代理方法,提供以下方法:

 1 // 2 // XWDropdownMenu.h 3 // XWReusableCodeLib 4 // 5 // Created by xiao on 15/10/30. 6 // Copyright © 2015年 xiao. All rights reserved. 7 // 下拉菜单 8  9 #import <UIKit/UIKit.h>10 11 @class XWDropdownMenu;12 #pragma mark 数据源方法13 @protocol XWDropdownMenuDataSource <NSObject>14 @required15 /**16  * 主表格一共有多少行17 */18 - (NSInteger)numberOfRowsInMainTable:(XWDropdownMenu *)dropdownMenu;19 /**20  * 主表格每一行的标题21  * @param row     行号22 */23 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu titleForRowInMainTable:(NSInteger)row;24 /**25  * 主表格每一行的子数据 数组26  * @param row     行号27 */28 - (NSArray *)dropdownMenu:(XWDropdownMenu *)dropdownMenu subdataForRowInMainTable:(NSInteger)row;29 @optional30 /**31  * 主表格每一行 分类数量32  * @param row     行号33 */34 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu countForRowInMainTable:(NSInteger)row;35 /**36  * 子表格每一行子数据 分类数量37  * @param row     行号38 */39 - (NSArray *)dropdownMenu:(XWDropdownMenu *)dropdownMenu subdataCountForRowInSubTable:(NSInteger)row;40 /**41  * 主表格每一行的图标42  * @param row     行号43 */44 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu iconForRowInMainTable:(NSInteger)row;45 /**46  * 子表格每一行的选中图标47  * @param row     行号48 */49 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu selectedIconForRowInMainTable:(NSInteger)row;50 @end51 52 #pragma mark 代理方法53 @protocol XWDropdownMenuDelegate <NSObject>54 55 @optional56 - (void)dropdownMenu:(XWDropdownMenu *)dropdownMenu didSelectRowInMainTable:(NSInteger)row;57 - (void)dropdownMenu:(XWDropdownMenu *)dropdownMenu didSelectRowInSubTable:(NSInteger)subrow inMainTable:(NSInteger)mainRow;58 59 @end60 61 #pragma mark 构造方法62 @interface XWDropdownMenu : UIView63 + (instancetype)dropdownMenu;64 -(void)refreshMenu;65 66 @property (nonatomic, weak) id<XWDropdownMenuDataSource> dataSource;67 @property (nonatomic, weak) id<XWDropdownMenuDelegate> delegate;68 69 /**主表被选中的字体颜色,默认是黑色*/70 @property (strong, nonatomic) UIColor *selectedRowTextColor;71 /**该属性设置成YES,主表比较小*/72 @property (nonatomic, assign)BOOL isMainTableSmall;73 @end

 由于还是有一些代码的,无法在这里将所有代码贴出,只能罗列出各个方法并添加注释,并附上简单的demo和效果图

demo地址:https://github.com/xiaoyeying/XWDropdownMenuDemo.git

 最后如有不足之处欢迎指正和批评,一起学习~~