SJPullDownMenu下拉菜单框架使用

原创 2016年08月30日 19:52:22

SJPullDownMenu


Getting Started【开始使用】

Manually【手动导入】


  • Drag all source files under floder SJPullDownMenu to your project.【将SJPullDownMenu文件夹中的所有源代码拽入项目中】
  • Import the main header file:#import “SJPullDownMenu.h”【导入主头文件:#import “SJPullDownMenu.h”】

SJPullDownMenu.h


  • 代理方法
@protocol SJPullDownMenuDataSource <NSObject>
/**
 *  下拉菜单列数
 *
 *  @param pullDownMenu 下拉菜单
 *
 *  @return 下拉菜单列数
 */
- (NSInteger)numberOfColsInMenu:(SJPullDownMenu *)pullDownMenu;
/**
 *  下拉菜单每列按钮
 *
 *  @param pullDownMenu 下拉菜单
 *  @param index        第几列
 *
 *  @return 下拉菜单每列按钮
 */
- (UIButton *)pullDownMenu:(SJPullDownMenu *)pullDownMenu buttonForColAtIndex:(NSInteger)index;
/**
 *  下拉菜单每列对应的控制器
 *
 *  @param pullDownMenu 下拉菜单
 *  @param index        第几列
 *
 *  @return 下拉菜单每列对应的控制器
 */
- (UIViewController *)pullDownMenu:(SJPullDownMenu *)pullDownMenu viewControllerForColAtIndex:(NSInteger)index;
/**
 *  下拉菜单每列对应的高度
 *
 *  @param pullDownMenu 下拉菜单
 *  @param index        第几列
 *
 *  @return 下拉菜单每列对应的高度
 */
- (CGFloat)pullDownMenu:(SJPullDownMenu *)pullDownMenu heightForColAtIndex:(NSInteger)index;

@end
  • 属性与方法
@interface SJPullDownMenu : UIView

/**
 *  数据源
 */
@property (nonatomic, weak) id<SJPullDownMenuDataSource> dataSource;
/**
 *  默认值
 */
@property (nonatomic, strong) NSArray *defaultTitleArray;
/**
 *  分割线颜色
 */
@property (nonatomic, strong) UIColor *separateLineColor;
/**
 *  蒙版颜色
 */
@property (nonatomic, strong) UIColor *coverColor;
/**
 *  隐藏分隔线
 */
@property (nonatomic, assign) BOOL hiddenSeparateLine;
/**
 *  动画持续时间
 */
@property (nonatomic, assign) CGFloat animateTime;

/**
 *  刷新菜单
 */
- (void)reloadMenu;

@end
  • 更新标题的通知名称
/**
 *  更新菜单文字通知名称(如果没有冲突,建议不要修改)
 */
static NSString * const SJUpdateMenuTitle = @"SJUpdateMenuTitle";

初始化菜单


    // 菜单按钮默认值
    NSArray *defaultTitleArray = @[@"综合排序", @"价格优先", @"更多"];

    // 初始化
    SJPullDownMenu *menuView = [[SJPullDownMenu alloc] init];
    // 设置尺寸
    menuView.frame = CGRectMake(0, 20, self.view.bounds.size.width, 44);
    // 设置数据源
    menuView.dataSource = self;
    // 设置每列按钮默认值
    menuView.defaultTitleArray = defaultTitleArray;

    [self.view addSubview:menuView];
    self.menuView = menuView;

    // 添加内容控制器
    [self addContentViewController];

初始化内容控制器


/**
 *  添加内容控制器
 */
- (void)addContentViewController {

    SJTestOneViewController *testOneVC = [[SJTestOneViewController alloc] init];
    SJTestTwoViewController *testTwoVC = [[SJTestTwoViewController alloc] init];
    SJTestThreeViewController *testThreeVC = [[SJTestThreeViewController alloc] init];

    [self addChildViewController:testOneVC];
    [self addChildViewController:testTwoVC];
    [self addChildViewController:testThreeVC];
}

实现代理方法


// 返回下拉菜单多少列
- (NSInteger)numberOfColsInMenu:(SJPullDownMenu *)pullDownMenu
{
    return self.childViewControllers.count;
}

// 返回下拉菜单每列按钮
- (UIButton *)pullDownMenu:(SJPullDownMenu *)pullDownMenu buttonForColAtIndex:(NSInteger)index
{
    SJButton *button = [SJButton buttonWithType:UIButtonTypeCustom];

    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [button setTitleColor:[UIColor lightGrayColor] forState:UIControlStateSelected];
    [button setImage:[UIImage imageNamed:@"icon_more_highlighted"] forState:UIControlStateNormal];
    [button setImage:[UIImage imageNamed:@"icon_more"] forState:UIControlStateSelected];

    return button;
}

// 返回下拉菜单每列对应的控制器
- (UIViewController *)pullDownMenu:(SJPullDownMenu *)pullDownMenu viewControllerForColAtIndex:(NSInteger)index
{
    return self.childViewControllers[index];
}

// 返回下拉菜单每列对应的高度
- (CGFloat)pullDownMenu:(SJPullDownMenu *)pullDownMenu heightForColAtIndex:(NSInteger)index
{
    // 设置高度
    if (index == 0) {

        return 390;
    } else if (index == 1) {

        return 130;
    } else if (index == 2) {

        return 260;
    } else {

        return 130;
    }
}

更新标题

  • 为了使用更灵活,使用通知来更新标题的方式,只需要在需要的地方使用通知就可以了

    • 首先导入头文件


    
    #import "SJPullDownMenu.h"
    
    
    • 在需要的地方使用


    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    // 更新标题
    [[NSNotificationCenter defaultCenter] postNotificationName:SJUpdateMenuTitle object:self userInfo:@{@"title" : cell.textLabel.text}];
    }
    

注:这边的userInfo只可发送一个Key值,Key的name不限制

效果图.gif

【SJPullDownMenu】框架github下载地址:https://github.com/shaojianye/SJPullDownMenu.git
【SJPullDownMenu】框架码云下载地址:https://git.oschina.net/miaomiaoshen/SJPullDownMenu.git

版权声明:本文为博主原创文章,转载请注明出处!

redis缓存 SSM 后台框架 rest接口 下拉多级联动

获取【下载地址】   QQ 313596790 三大数据库 mysql  oracle  sqlsever   更专业、更强悍、适合不同用户群体 【新录针对本系统的视频教程,手把手教开发一个...
  • maxumas
  • maxumas
  • 2016年12月24日 10:49
  • 1228

Cocos2d-x 自定义实现下拉列表框(两种实现方法)

在引擎中并没有提供相应的下拉列表控件实现,所以如果在实际应用中需要的话就要自己代码实现。   下面我介绍两种实现的方式,以供大家参考。 方法一: 这个方法我是参考了网上的一段代码,然后...
  • Crayon_DyS
  • Crayon_DyS
  • 2013年10月24日 21:09
  • 8856

使用DrawerLayout实现侧拉菜单

侧拉菜单在android应用中非常常见,它的实现方式太多了,今天我们就说说使用Google提供的DrawerLayout来实现侧拉菜单效果,先来看张效果图:DrawerLayout的实现其实非常简单,...
  • u012702547
  • u012702547
  • 2015年11月01日 23:00
  • 8477

仿手机QQ下拉菜单框架(FFDropDownMenu) -- 基本使用

最近写了这个框架: FFDropDownMenu,类似手机QQ下拉菜单。 github地址: https://github.com/chenfanfang/FFDropDownMenu 更多的使...
  • qq_30513483
  • qq_30513483
  • 2016年08月10日 08:38
  • 1067

简单的下拉菜单框架结构源代码(供初学者学习)

  • 2014年12月09日 15:47
  • 9.3MB
  • 下载

Dwz 国产框架 JUI 分页组件下拉菜单bug解决方案

最近在研究JUI框架。 突然发现示例 界面组件→主框架面板→替换页面一 ;“替换页面一”示例中每页显示多少条的下拉菜单无论怎么选择都是最后显示20条。 一开始以为是自己弄错,后来才发现原来...
  • quan19901210
  • quan19901210
  • 2013年09月13日 10:42
  • 4823

Yii框架扩展generalizeQudaoTreeColumn【渠道推广下拉菜单】

Yii框架扩展JDataItem【数据项组件】 配置详细说明(继承自CWidget类库) 属性名:$labelName 说明:标签名称 属性名:$htmlOptions ...
  • jake451
  • jake451
  • 2011年12月22日 16:23
  • 864

创建与SharePoint 2010风格一致的下拉菜单 (续) 整合Feature Custom Action框架

在上一篇“创建与SharePoint 2010风格一致的下拉菜单”文章中,演示了如何添加一个额外的菜单到页面顶端,并使其的样式风格与SharePoint 2010内置的菜单保持一致。如果只需要创建一个...
  • lance_lot1
  • lance_lot1
  • 2012年09月10日 17:42
  • 454

使用jquery制作精美的下拉菜单

  • 2014年06月11日 20:55
  • 227KB
  • 下载

使用JQuery实现下拉菜单

  • 2013年05月18日 17:55
  • 73KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SJPullDownMenu下拉菜单框架使用
举报原因:
原因补充:

(最多只允许输入30个字)