ASJDropDownMenu
iOS 默认没有下拉菜单。开发者应该使用 UIPickerView
进行类似操作。然而,项目设计有时可能需要此类菜单。这个类是 UIView
的一个子类,其中包含一个嵌入的 UITableView
。它提供了显示在任何 UIView
下方下拉菜单所需的功能,可通过各种属性进行自定义。
安装
CocoaPods 是安装此库的首选方式。将以下命令添加到您的 Podfile
中
pod 'ASJDropDownMenu'
使用
创建一个很简单。show 方法有一个返回选中项的完成块。您可以在那里立即隐藏下拉菜单
ASJDropDownMenu *dropDownMenu = [[ASJDropDownMenu alloc] initWithView:aView menuItems:anArrayOfASJDropDownMenuItems];
[dropDown showMenuWithCompletion:^(ASJDropDownMenu *dropDownMenu, ASJDropDownMenuItem *menuItem, NSUInteger index)
{
[dropDownMenu hideMenu];
}];
在实例化时提供的任何视图,下拉菜单将正好位于其下方。菜单项需要是 ASJDropDownMenuItem
类型。提供了生成它们的构造函数方法。只需将这些方法生成的数组附加到下拉菜单实例。
ASJDropDownMenuItem *itemWithTitle = [ASJDropDownMenuItem itemWithTitle:@"a title"];
ASJDropDownMenuItem *anotherItemWithTitle = [ASJDropDownMenuItem itemWithTitle:@"another title"];
anInstanceOfDropDownMenu.menuItems = @[itemWithTitle, anotherItemWithTitle];
ASJDropDownMenuItem *itemWithSubtitle = [ASJDropDownMenuItem itemWithTitle:@"a title" subtitle:@"a subtitle" image:anImage];
ASJDropDownMenuItem *anotherItemWithSubtitle = [ASJDropDownMenuItem itemWithTitle:@"another title" subtitle:@"another subtitle" image:anotherImage];
anInstanceOfDropDownMenu.menuItems = @[itemWithSubtitle, anotherItemWithSubitle];
定制
以下是一些可以用来定制下拉菜单的属性:
@property (nullable, strong, nonatomic) UIColor *menuColor;
设置菜单的背景颜色。
@property (nullable, strong, nonatomic) UIColor *itemColor;
设置菜单项的文本颜色。
@property (nullable, strong, nonatomic) UIFont *itemFont;
设置菜单项的字体。
@property (assign, nonatomic) CGFloat itemHeight;
设置每个菜单项的高度。
@property (assign, nonatomic) CGFloat animationDuration;
设置隐藏或显示菜单所需的时间(秒)。默认为0.4。
@property (assign, nonatomic) BOOL hidesOnSelection;
如果设置为YES
,则菜单在点击项时将隐藏。
@property (assign, nonatomic) ASJDropDownMenuDirection direction;
可以显示在指定视图下方或上方。默认显示在下方。
@property (assign, nonatomic) ASJDropDownMenuScrollIndicatorStyle indicatorStyle;
可以设置滚动指示器的样式为默认、黑色或白色,这是默认的UIScrollView
指示器样式。如果你想让滚动指示器具有自定义颜色,可以查看ASJColoredScrollIndicators。
待办
打开和关闭动画。添加图片的选项。选择项后关闭的选项。可以向上或向下打开下拉菜单的选项。- 当键盘显示时,可以移动屏幕以容纳抽屉。
许可证
ASJDropDownMenu
在MIT许可证下可用。查看LICENSE文件获取更多信息。