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

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

    不忘初心,方得始终
  • 相关阅读:
    suse12安装详解
    Centos7上部署openstack mitaka配置详解(将疑难点都进行划分)
    菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]
    openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.
    Multiple network matches found for name 'selfservice', use an ID to be more specific.报错
    查看 SELinux状态及关闭SELinux
    SELinux深入理解
    IP地址、子网掩码、网络号、主机号、网络地址、主机地址
    Oracle job procedure 存储过程定时任务
    POI文件导出至EXCEL,并弹出下载框
  • 原文地址:https://www.cnblogs.com/Lingchen-start/p/4923837.html
Copyright © 2011-2022 走看看