别人的iOS精华iOS知识点iOS定制view

iOS下拉菜单效果实现

2016-08-22  本文已影响17402人  JerryLMJ

实现效果:

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技术博客的原创作品 ,转载时必须注明出处及相应链接!

上一篇下一篇

猜你喜欢

热点阅读