首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS中向导航栏标题添加下拉菜单

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

Stack Overflow用户
提问于 2015-07-25 02:53:54
回答 2查看 17.9K关注 0票数 11

我想在这些截图中做一些类似于下拉菜单的东西。我该怎么做呢?

​

​

当您轻敲标题时,箭头指向上方,一个菜单向下弹出。这个应用程序是大学菜单。

​

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-25 03:04:56

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

DropDown Menu Controls For iOS

但我认为lmdropdownview是最准确的。

我的错误,btnavigationdropdownmenu是你所问的最准确的(根据你的屏幕)。

实施(Swift)有关更详细的说明和自定义,请参阅自述文件

代码语言:javascript
复制
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]
}

希望能有所帮助。

编辑:

感谢'rsc‘的信息,这是这个可可控制器的objective-c version:

代码语言:javascript
复制
    #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;

    }
票数 17
EN

Stack Overflow用户

发布于 2015-07-25 03:12:28

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

创建两个UIButton (向上/向下),将第一个分配给navigationItem.titleView,在此操作上为UIControlEventTouchUpInside添加操作检查状态是否更改为展开或折叠,并依赖于添加/删除UITableView,并在您的UIViewController view顶部添加/删除空dataSource,设置适当的框架。然后更新数据源,并使用行动画、UITableViewRowAnimationBottom或UITableViewRowAnimationTop重新加载,这取决于它是展开还是折叠。用第二个按钮替换按钮。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31617810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档