zoukankan      html  css  js  c++  java
  • IOS 下拉菜单

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

     1 //
     2 //  XWDropdownMenu.h
     3 // 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 @required
    15 /**
    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 @optional
    30 /**
    31  *  主表格每一行 分类数量
    32  *  @param row          行号
    33  */
    34 - (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu countForRowInMainTable:(NSInteger)row;
    35 /**
    36  *  子表格每一行子数据 分类数量 根据数组显示子表每行提示数字
    37  *  @param row          主表行号
    38  */
    39 - (NSArray *)dropdownMenu:(XWDropdownMenu *)dropdownMenu subdataCountForRowInMainTable:(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 @end
    51 
    52 #pragma mark 代理方法
    53 @protocol XWDropdownMenuDelegate <NSObject>
    54 
    55 @optional
    56 - (void)dropdownMenu:(XWDropdownMenu *)dropdownMenu didSelectRowInMainTable:(NSInteger)row;
    57 - (void)dropdownMenu:(XWDropdownMenu *)dropdownMenu didSelectRowInSubTable:(NSInteger)subrow inMainTable:(NSInteger)mainRow;
    58 
    59 @end
    60 
    61 #pragma mark 构造方法
    62 @interface XWDropdownMenu : UIView
    63 + (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

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

    不忘初心,方得始终
  • 相关阅读:
    webpack配置模块的查找范围
    webpack中resolve用法
    C语言中的字符串
    bash通配符与特殊符号
    求两个字符串的最大公共子串
    linux内核编译
    数据库中使用索引来提高查询的速度
    数据库中的主键与外键
    Linux学习——命令3
    Linux学习——命令2
  • 原文地址:https://www.cnblogs.com/Lingchen-start/p/4923837.html
Copyright © 2011-2022 走看看