【问题标题】:How to add a dropdown menu to the Navigation Bar Title in iOS如何在 iOS 的导航栏标题中添加下拉菜单
【发布时间】:2015-07-24 18:53:53
【问题描述】:

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

当您点击标题时,箭头会向上,菜单会下拉。该应用程序是大学菜单。

【问题讨论】:

    标签: ios objective-c swift storyboard


    【解决方案1】:

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

    DropDown Menu Controls For iOS

    但我认为lmdropdownview 是最准确的。

    我的错误,btnavigationdropdownmenu 它对于您的要求是最准确的(根据您的屏幕)。

    实现 (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]
    }
    

    希望对你有帮助。

    编辑:

    感谢 'rsc' 提供的信息,这个 cocoacontrol 有一个 objective-c version

        #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;
    
        }
    

    【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多