实现效果:

Demo地址: https://github.com/MajorLMJ/LMJDropdownMenu
如果此demo帮助到你,请赐给一颗star,你的鼓励是我coding的动力
控件的属性以及接口:
/* 主按钮 可以自定义样式 可在.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的动力
版权声明:出自MajorLMJ技术博客的原创作品 ,转载时必须注明出处及相应链接!
网友评论