IOS 下拉菜单
由于之前曾经用到过下拉菜单,所以现在花一些时间回过头来细细整理了一下,逐步完善这个下拉菜单,并提供一些比较基本的功能,以便日后如果有需要的话可以进行复用,并提供给需要的人参考。下拉菜单同样分为数据源和代理方法,提供以下方法:
//
// 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 下拉菜单的更多相关文章
- 如何在webapp中做出原生的ios下拉菜单效果
github:https://github.com/zhoushengmufc/iosselect webapp模仿ios下拉菜单 html下拉菜单select在安卓和IOS下表现不一样,iossel ...
- iOS 下拉菜单 FFDropDownMenu自定义下拉菜单样式实战-b
Demo地址:https://github.com/chenfanfang/CollectionsOfExampleFFDropDownMenu框架地址:https://github.com/chen ...
- ios学习--iphone 实现下拉菜单
原文地址:ios学习--iphone 实现下拉菜单作者:sdglyuan00 #import @interface DropDown1 : UIView <</span>UITabl ...
- IOS第二天-新浪微博 - 添加搜索框,弹出下拉菜单 ,代理的使用 ,HWTabBar.h(自定义TabBar)
********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearc ...
- iOS 新浪微博-2.0 搜索框/标题带箭头/下拉菜单
不管是搜索框还是下拉菜单,我们都需要对背景的图片进行拉伸.定义一个Category分类对图片进行操作. UIImage+Effect.h #import <UIKit/UIKit.h> @ ...
- 形行色色的下拉菜单(HTML/CSS JS方法 jQuery方法实现)
HTML/CSS方法实现下拉菜单来源:慕课网<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...
- bootstrap-js(2)下拉菜单
1.下面的实例演示了在导航栏内和标签内的下拉菜单的用法: <!DOCTYPE HTML><html><head><link href="/style ...
- Bootstrap-Plugin:下拉菜单(Dropdown)插件
ylbtech-Bootstrap-Plugin:下拉菜单(Dropdown)插件 1.返回顶部 1. Bootstrap 下拉菜单(Dropdown)插件 Bootstrap 下拉菜单 这一章讲解了 ...
- iphone动态下拉菜单
介绍:实现带动画效果的下拉菜单.用户按下菜单按钮,出现下拉按钮,用户松开菜单按钮,下拉按钮收回. 测试环境:Xcode 4.3, iOS 5.0. 效果图: jQuery特效:http://www.h ...
随机推荐
- 关于struts2 验证框架在联网的时候可以用,不联网不起作用的问题
这是一个让我很头痛的问题,我是在一个其他的项目框架的基础上来开发新的项目. 当使用struts验证框架时,突然发现这个验证不起作用了,我就纳闷了之前用这个开发的项目好好的怎么到我这就不能用了呢? xm ...
- hdu 5278 Geometric Progression 高精度
Geometric Progression Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contes ...
- C#中使用UDP通信
UDP通信是无连接通信,客户端在发送数据前无需与服务器端建立连接,即使服务器端不在线也可以发送,但是不能保证服务器端可以收到数据. 服务器端代码: static void Main(string[] ...
- c# socket通信较完善方案
c#的socket通信应用.文件较多.附件为工程. core AbstractBytesWorker.cs 字节工作器(基类),用于用于同一不同功能的字节工作器 BinaryHand.c ...
- C#中如何计算时间差?
C#中怎么计算两时间相差多少.计算2个时间之间的差,可以计算到时分秒! <1> label1.Text = "2004-1-1 15:36:05"; label2.Te ...
- C/C++学习站点资源
学习论坛: 轩辕软件论坛 中国IT实验室C/C++论坛 编程爱好者论坛 编程中国论坛 进阶站点: 浙江工业 http://acm.zjut.edu.cn 浙江大学 http://acm.zju.edu ...
- 硬盘安装centos
1.用pqmagic划分出来二个分区,第一个是ext3格式的,用于放centos镜像文件,第二个不用管是什么格式的,用于安装centos,我一般在磁盘最后面划分出来二个分区. 2.安装Ext2Fsd ...
- int *(*a[5])(int, char*)
int* 表示是一个int型指针;(*a[5])(int, char*)中的a[5]表示是一个有5个元素的数组,而(*)(int, char*)则表示指向一个函数的指针,该函数有两个参数,第一个参数为 ...
- Python_爬虫3
正则表达式 在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 1.了解正则表达式 正则表达式是对 ...
- C#_uploadify_mvc_version
jQuery Uploadify在ASP.NET MVC3中的使用 1.Uploadify简介 Uploadify是基于jQuery的一种上传插件,支持多文件.带进度条显示上传,在项目开发中常被使用. ...