iOS下拉菜单效果实现

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

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

iOS下拉菜单效果实现_第1张图片

控件的属性以及接口:

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

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

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

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

代理函数:

@protocol LMJDropdownMenuDelegate 

@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的动力


你可能感兴趣的:(iOS下拉菜单效果实现)