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 @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 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 @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

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

时间: 2024-10-11 11:23:23

IOS 下拉菜单复用的相关文章

iOS下拉菜单效果实现

原文链接: iOS下拉菜单效果实现 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/MajorLMJ iOS开发者公会-技术1群 QQ群号:87440292 iOS开发者公会-技术2群 QQ群号:232702419 iOS开发者公会-议事区   QQ群号:413102158

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

Demo地址:https://github.com/chenfanfang/CollectionsOfExampleFFDropDownMenu框架地址:https://github.com/chenfanfang/FFDropDownMenu 老样子,先附上两张效果图 customMenuStyle.gif customMenuStyle.png 首先自定义一个继承于FFDropDownMenuBasedModel的菜单模型.h文件 #import <FFDropDownMenuBasedMo

ios下拉菜单tableview的实现

ActivitiesViewController.h里面 { BOOL bol;//判定优惠券下拉菜单的开关 } @property(retain,nonatomic)NSMutableArray *array; @property (retain, nonatomic)UIView *aselectview; @property(retain,nonatomic)UITableView *tableViewFree; ActivitiesViewController.m里面 - (void)v

iOS快速集成搜索界面下拉菜单框架

前言 这次推出的控件,比较常用,搜索界面下拉菜单,如果喜欢我的文章,可以关注我微博:吖了个峥,也可以来小码哥,了解下我们的iOS培训课程.后续还会更新更多内容,有任何问题,欢迎简书留言峥吖... Demo效果: 效果图.gif Demo演示: 1.创建下拉菜单 YZPullDownMenu *menu = [[YZPullDownMenu alloc] init]; menu.frame = CGRectMake(0, 20, YZScreenW, 44); [self.view addSubv

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

********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearchBar *searchBar = [HWSearchBar searchBar]; searchBar.width = 300; searchBar.height = 30; self.navigationItem.titleView = searchBar; //设置titleView 是搜索框

Bootstrap 学习之js插件(下拉菜单(Dropdown)插件)

Bootstrap 下拉菜单(Dropdown)插件 Bootstrap 下拉菜单 这一章讲解了下拉菜单,但是没有涉及到交互部分,本章将具体讲解下拉菜单的交互.使用下拉菜单(Dropdown)插件,您可以向任何组件(比如导航栏.标签页.胶囊式导航菜单.按钮等)添加下拉菜单. 用法 您可以切换下拉菜单(Dropdown)插件的隐藏内容: 通过 data 属性:向链接或按钮添加 data-toggle="dropdown" 来切换下拉菜单,如下所示: <div class="

Eclipse插件开发学习笔记【5】--- 给视图添加下拉菜单和按钮

我们采用上篇中的示例,需要在View2中添加两个按钮和下拉菜单中添加两项. 首先,新建一个继承ActionGroup类,AddActionGroup,具体代码如下: /** ************************************ AddActionGroup类 **/ package viewsconnection.actions; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.I

Bootstrap中的各种下拉菜单

@*基本下拉菜单与按钮下拉菜单的样式完全一致.不过,基本的下拉菜单使用<div class="dropdown">包裹,所有要换行.而按钮式下拉菜单<div class="btn-group">按钮组包裹,属于内联样式,不换行. 分割的按钮下拉菜单多了一个<button></button>作为默认选项,另一个button的内容是<span class="caret">. 而<li

bootstrap的下拉菜单

本文章将重点介绍 Bootstrap 下拉菜单.下拉菜单是可切换的,用于显示链接列表的可切换.有上下文的菜单.下拉菜单的 JavaScript 插件让它具有了交互性. 1.将下拉菜单触发器和下拉菜单都包裹在 放在class.dropdown 里,或者另一个声明了 position: relative; 的元素. 代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <me