如何在iOS中的导航栏标题中添加下拉菜单

The*_*der 11 objective-c storyboard ios swift

我想在这些屏幕截图中创建类似于下拉菜单的内容.我该怎么做呢?

在此输入图像描述

点击标题时,箭头指向上方,菜单会下降.应用程序是大学菜单.

在此输入图像描述

Kar*_*pez 17

有很多cocoacontrols可以在你的应用程序中执行此功能:

适用于iOS的DropDown菜单控件

但我认为lmdropdownview是最准确的.

我的错误,btnavigationdropdownmenu ITS最准确的你要问的(根据你的屏幕).

实现(Swift)[有关更多特定说明和自定义,请参阅自述文件]:

let items = ["Most Popular", "Latest", "Trending", "Nearest", "Top Picks"]

let menuView = BTNavigationDropdownMenu(frame:  CGRectMake(0.0, 0.0, 300, 44), title: items.first!, items: items, containerView: self.view)

self.navigationItem.titleView = menuView

menuView.didSelectItemAtIndexHandler = {(indexPath: Int) -> () in
            println("Did select item at index: \(indexPath)")
            self.selectedCellLabel.text = items[indexPath]
}
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你.

编辑:

感谢'rsc'的信息,这是cocoacontrol 的客观c版本:

    #import "PFNavigationDropdownMenu.h"


-(void)viewDidLoad{
    PFNavigationDropdownMenu *menuView = [[PFNavigationDropdownMenu alloc]initWithFrame:CGRectMake(0, 0, 300, 44)title:items.firstObjects items:items containerView:self.view];

    menuView.didSelectItemAtIndexHandler = ^(NSUInteger indexPath){
            NSLog(@"Did select item at index: %ld", indexPath);
            self.selectedCellLabel.text = items[indexPath];
        };

        self.navigationItem.titleView = menuView;

    }
Run Code Online (Sandbox Code Playgroud)


tea*_*rge 6

如果您喜欢手动执行此操作,可能的解决方法

创建两个UIButton(向上/向下),分配第一个navigationItem.titleView,UIControlEventTouchUpInside为此操作添加操作检查状态是否更改为展开或折叠并依赖于添加/删除UITableView您的空数据源UIViewController view,设置正确的帧.然后更新数据源并使用行动画重新加载UITableViewRowAnimationBottomUITableViewRowAnimationTop依赖于它是否正在展开或折叠.用第二个替换按钮.