适用于任何需求的 iOS 下拉菜单,带有许多可自定义的参数。
灵感来自 UIPickerView。
MKDropdownMenu
文件夹添加到您的 Xcode 项目中。#import "MKDropdownMenu.h"
。查看示例 Xcode 项目。
创建 MKDropdownMenu
实例并将其作为子视图添加到视图中。将 dataSource
和 delegate
属性设置为实现 MKDropdownMenuDataSource
和 MKDropdownMenuDelegate
协议的视图控制器。
MKDropdownMenu *dropdownMenu = [[MKDropdownMenu alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
dropdownMenu.dataSource = self;
dropdownMenu.delegate = self;
[self.view addSubview:dropdownMenu];
您还可以在界面构建器中设置 MKDropdownMenu
。
UIView
的类设置为 MKDropdownMenu
。dataSource
和 delegate
输出口连接到您的视图控制器。MKDropdownMenuDataSource
和 MKDropdownMenuDelegate
协议的 API 受 UIPickerView 接口的启发,因此如果您之前使用过它,大部分方法应该是熟悉的。
实现以下 dataSource
方法
- (NSInteger)numberOfComponentsInDropdownMenu:(MKDropdownMenu *)dropdownMenu;
- (NSInteger)dropdownMenu:(MKDropdownMenu *)dropdownMenu numberOfRowsInComponent:(NSInteger)component;
和满足您需求的 delegate
方法。开始的最简单方法是为以下 delegate
方法提供标题组件和行的标题。
- (NSString *)dropdownMenu:(MKDropdownMenu *)dropdownMenu titleForComponent:(NSInteger)component;
- (NSString *)dropdownMenu:(MKDropdownMenu *)dropdownMenu titleForRow:(NSInteger)row forComponent:(NSInteger)component;
您还可以在相应的 delegate
方法中提供 NSAttributedString
或自定义 UIView
作为 MKDropdownMenu
的显示数据。
通过设置属性值或实现相应的 delegate
方法来自定义 MKDropdownMenu
的外观和行为。
可以使用可用的 UI_APPEARANCE_SELECTOR
属性在应用程序中全面自定义默认菜单外观。
MKDropdownMenu
可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。