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

 //
// XWDropdownMenu.h
// //
// Created by xiao on 15/10/30.
// Copyright © 2015年 xiao. All rights reserved.
// 下拉菜单 #import <UIKit/UIKit.h> @class XWDropdownMenu;
#pragma mark 数据源方法
@protocol XWDropdownMenuDataSource <NSObject>
@required
/**
* 主表格一共有多少行
*/
- (NSInteger)numberOfRowsInMainTable:(XWDropdownMenu *)dropdownMenu;
/**
* 主表格每一行的标题
* @param row 行号
*/
- (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu titleForRowInMainTable:(NSInteger)row;
/**
* 主表格每一行的子数据 根据数组显示子表每行内容
* @param row 主表行号
*/
- (NSArray *)dropdownMenu:(XWDropdownMenu *)dropdownMenu subdataForRowInMainTable:(NSInteger)row;
@optional
/**
* 主表格每一行 分类数量
* @param row 行号
*/
- (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu countForRowInMainTable:(NSInteger)row;
/**
* 子表格每一行子数据 分类数量 根据数组显示子表每行提示数字
* @param row 主表行号
*/
- (NSArray *)dropdownMenu:(XWDropdownMenu *)dropdownMenu subdataCountForRowInMainTable:(NSInteger)row;
/**
* 主表格每一行的图标
* @param row 行号
*/
- (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu iconForRowInMainTable:(NSInteger)row;
/**
* 主表格每一行的选中图标
* @param row 行号
*/
- (NSString *)dropdownMenu:(XWDropdownMenu *)dropdownMenu selectedIconForRowInMainTable:(NSInteger)row;
@end #pragma mark 代理方法
@protocol XWDropdownMenuDelegate <NSObject> @optional
- (void)dropdownMenu:(XWDropdownMenu *)dropdownMenu didSelectRowInMainTable:(NSInteger)row;
- (void)dropdownMenu:(XWDropdownMenu *)dropdownMenu didSelectRowInSubTable:(NSInteger)subrow inMainTable:(NSInteger)mainRow; @end #pragma mark 构造方法
@interface XWDropdownMenu : UIView
+ (instancetype)dropdownMenu;
-(void)refreshMenu; @property (nonatomic, weak) id<XWDropdownMenuDataSource> dataSource;
@property (nonatomic, weak) id<XWDropdownMenuDelegate> delegate; /**主表被选中的字体颜色,默认是黑色*/
@property (strong, nonatomic) UIColor *selectedRowTextColor;
/**该属性设置成YES,主表较小*/
@property (nonatomic, assign)BOOL isMainTableSmall;
@end

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

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

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

IOS 下拉菜单的更多相关文章

  1. 如何在webapp中做出原生的ios下拉菜单效果

    github:https://github.com/zhoushengmufc/iosselect webapp模仿ios下拉菜单 html下拉菜单select在安卓和IOS下表现不一样,iossel ...

  2. iOS 下拉菜单 FFDropDownMenu自定义下拉菜单样式实战-b

    Demo地址:https://github.com/chenfanfang/CollectionsOfExampleFFDropDownMenu框架地址:https://github.com/chen ...

  3. ios学习--iphone 实现下拉菜单

    原文地址:ios学习--iphone 实现下拉菜单作者:sdglyuan00 #import @interface DropDown1 : UIView <</span>UITabl ...

  4. IOS第二天-新浪微博 - 添加搜索框,弹出下拉菜单 ,代理的使用 ,HWTabBar.h(自定义TabBar)

    ********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearc ...

  5. iOS 新浪微博-2.0 搜索框/标题带箭头/下拉菜单

    不管是搜索框还是下拉菜单,我们都需要对背景的图片进行拉伸.定义一个Category分类对图片进行操作. UIImage+Effect.h #import <UIKit/UIKit.h> @ ...

  6. 形行色色的下拉菜单(HTML/CSS JS方法 jQuery方法实现)

    HTML/CSS方法实现下拉菜单来源:慕课网<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  7. bootstrap-js(2)下拉菜单

    1.下面的实例演示了在导航栏内和标签内的下拉菜单的用法: <!DOCTYPE HTML><html><head><link href="/style ...

  8. Bootstrap-Plugin:下拉菜单(Dropdown)插件

    ylbtech-Bootstrap-Plugin:下拉菜单(Dropdown)插件 1.返回顶部 1. Bootstrap 下拉菜单(Dropdown)插件 Bootstrap 下拉菜单 这一章讲解了 ...

  9. iphone动态下拉菜单

    介绍:实现带动画效果的下拉菜单.用户按下菜单按钮,出现下拉按钮,用户松开菜单按钮,下拉按钮收回. 测试环境:Xcode 4.3, iOS 5.0. 效果图: jQuery特效:http://www.h ...

随机推荐

  1. MEF 编程指南(七):使用目录

    目录(Catalogs)   MEF 特性编程模型的核心价值,拥有通过目录动态地发现部件的能力.目录允许应用程序轻松地使用那些通过 Export Attribute 注册自身的导出.下面列出 MEF ...

  2. PC/UVa 题号: 110101/100 The 3n+1 problem (3n+1 问题)

     The 3n + 1 problem  Background Problems in Computer Science are often classified as belonging to a ...

  3. Struts2常量的具体用法实例(一)

    XML代码: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC ...

  4. 关于Python中的self

    虽然我现在写过一些Python代码,但实际上几乎还没用过Class,而且一直觉得一个很别扭的事情是,Class中的函数都要写个参数self,虽然实例化调用的时候不需要. 当然,一开始就知道Python ...

  5. IOS Note - View Controller(视图控制器)

    Application Delegate(应用程序委托) Application Name: SingleView SingleViewAppDelegate.h #import <UIKit/ ...

  6. Linux pipe函数

    1. 函数说明 pipe(建立管道): 1) 头文件 #include<unistd.h> 2) 定义函数: int pipe(int filedes[2]); 3) 函数说明: pipe ...

  7. ant脚本打jar包 自动获取时间以及项目svn版本号

    1.关键代码,获取时间 <tstamp> <format property="touch.time" pattern="yyyy/MM/dd hh:mm ...

  8. windows快捷操作

    命令行启动或关闭VMWare服务: net start VMwareHostdVMAuthdServiceVMUSBArbService"VMware NAT Service"VM ...

  9. php引用详解

    <?php function foo($bar){   $bar='111111111'; } $str='2222222222222'; foo($str); echo $str; //out ...

  10. vi/vim使用进阶: 剑不离手 – quickfix

    转载:http://easwy.com/blog/archives/advanced-vim-skills-quickfix-mode/ 本节所用命令的帮助入口: :help quickfix :he ...