iOS下拉菜单效果实现

demo地址:https://github.com/MajorLMJ/LMJDropdownMenu

原文地址:https://www.jianshu.com/p/d1b7ebba9ac7


控件的属性以及接口:

/* 主按钮 可以自定义样式 可在.m文件中修改默认的一些属性 */ 
@property (nonatomic,strong) UIButton * mainBtn;  

/* 代理 */
@property (nonatomic, assign) id <LMJDropdownMenuDelegate>delegate;

/* 下拉列表中的选项标题以及选项高度的设置
(一些其他具体样式的需求可以在.m文件中的下拉tableView中进行自定义修改) */
- (void)setMenuTitles:(NSArray *)titlesArr rowHeight:(CGFloat)rowHeight;  

- (void)showDropDown; // 显示下拉菜单
- (void)hideDropDown; // 隐藏下拉菜单

代理函数:

@protocol LMJDropdownMenuDelegate <NSObject>

@optional
// 当下拉菜单将要显示时调用
- (void)dropdownMenuWillShow:(LMJDropdownMenu *)menu;    
// 当下拉菜单已经显示时调用
- (void)dropdownMenuDidShow:(LMJDropdownMenu *)menu;     
// 当下拉菜单将要收起时调用
- (void)dropdownMenuWillHidden:(LMJDropdownMenu *)menu;  
// 当下拉菜单已经收起时调用
- (void)dropdownMenuDidHidden:(LMJDropdownMenu *)menu;   


// 当选择某个选项时调用
- (void)dropdownMenu:(LMJDropdownMenu *)menu selectedCellNumber:(NSInteger)number; 

@end

使用:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor lightGrayColor];
    
    // 控件的创建
    LMJDropdownMenu * dropdownMenu = [[LMJDropdownMenu alloc] init];
    [dropdownMenu setFrame:CGRectMake(20, 80, 100, 40)];
    [dropdownMenu setMenuTitles:@[@"选项一",@"选项二",@"选项三",@"选项四"] rowHeight:30];
    dropdownMenu.delegate = self;
    [self.view addSubview:dropdownMenu];
}

#pragma mark - LMJDropdownMenu Delegate

- (void)dropdownMenu:(LMJDropdownMenu *)menu selectedCellNumber:(NSInteger)number{
    NSLog(@"你选择了:%ld",number);
}

- (void)dropdownMenuWillShow:(LMJDropdownMenu *)menu{
    NSLog(@"--将要显示--");
}
- (void)dropdownMenuDidShow:(LMJDropdownMenu *)menu{
    NSLog(@"--已经显示--");
}

- (void)dropdownMenuWillHidden:(LMJDropdownMenu *)menu{
    NSLog(@"--将要隐藏--");
}
- (void)dropdownMenuDidHidden:(LMJDropdownMenu *)menu{
    NSLog(@"--已经隐藏--");
}

Demo地址:
https://github.com/MajorLMJ/LMJDropdownMenu
如果此demo帮助到你,请赐给一颗star,你的鼓励是我coding的动力


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值