MKDropdownMenu 1.4

MKDropdownMenu 1.4

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最新发布2017年3月

Max Konovalov 维护。




  • 作者
  • Max Konovalov

适用于任何需求的 iOS 下拉菜单,带有许多可自定义的参数。

灵感来自 UIPickerView。

MKDropdownMenu MKDropdownMenu

安装

手动

  • MKDropdownMenu 文件夹添加到您的 Xcode 项目中。
  • 在您的代码中使用 #import "MKDropdownMenu.h"

使用

查看示例 Xcode 项目。

基本设置

创建 MKDropdownMenu 实例并将其作为子视图添加到视图中。将 dataSourcedelegate 属性设置为实现 MKDropdownMenuDataSourceMKDropdownMenuDelegate 协议的视图控制器。

MKDropdownMenu *dropdownMenu = [[MKDropdownMenu alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
dropdownMenu.dataSource = self;
dropdownMenu.delegate = self;
[self.view addSubview:dropdownMenu];

界面构建器

您还可以在界面构建器中设置 MKDropdownMenu

  • 在身份检查器中将一个 UIView 的类设置为 MKDropdownMenu
  • dataSourcedelegate 输出口连接到您的视图控制器。

填充数据

MKDropdownMenuDataSourceMKDropdownMenuDelegate 协议的 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 属性在应用程序中全面自定义默认菜单外观。

需求

  • 适用于iOS 8及以上版本
  • 适用于Xcode 8及以上版本

许可证

MKDropdownMenu可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。