DSDMenu 0.2.6

DSDMenu 0.2.6

m3g0byt3 维护。




DSDMenu 0.2.6

  • m3g0byt3

DSDMenu

CI Status Version License Platform iOS GitHub issues

Dead Simpe Dropdown Menu

Swift 编写的简单下拉菜单。

Example

特点


  • 根据所选单元格自动更新菜单按钮内容
  • 使用委托或配置闭包来设置菜单
  • 使用默认或自定义菜单单元格(带和不带 NIBs)
  • 通过编程或使用 Interface Builder 创建菜单

要求


  • iOS 9.0+
  • Xcode 9.0+
  • Swift 4.0+

示例


要运行示例项目,首先克隆仓库,然后从 Example 目录运行 pod install

安装


DSDMenu 可通过 CocoaPods 获取。

CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器。您可以使用以下命令安装它

$ sudo gem install cocoapods

要集成 DSDMenu,只需将以下行添加到您的 Podfile

pod 'DSDMenu'

然后,运行以下命令

pod install

使用方法


初始化

  1. 代码初始化

    使用便利初始化器

    init(title: String, frame: CGRect = CGRect.zero)
  2. 使用界面构建器

    在故事板中放置一个 UIButton 对象,并按照下面的图片更改自定义类

    Interface Builder setup

自定义菜单行为

DSDMenu 可以通过两种方式(互斥的)进行自定义和控制

  1. 使用代理(旧方式)

    符合 DropDownDelegate 协议并分配代理

    1. 编程方式

      menu.delegate = self
    2. 使用界面构建器

      Interface Builder delegate

  2. 使用配置闭包(新方式)

    实例化菜单对象,然后传递包含在闭包内的 DropDownMenuConfigurator 实例到 configure(using: (DropDownMenuConfigurator) -> Void) 方法中

    menu.configure { configurator in
      configurator.cellClass(DropDownCell.self)
                  .numberOfItems(10)
                  .updateThumbnailOnSelection(true)
                  .didSelectItem { index in print(index) }
                  .willDisplayCell { (cell, index) in print(cell, index) }
    }

API参考


代理方法 配置方法等效 描述
numberOfItems(in:) numberOfItems(_:) 请求代理以获取菜单中的条目数
cellClass(for:) cellClass(_:) 请求代理以获取菜单中使用的单元格类
dropDownMenu(_:didSelectItemAt:) didSelectItem(_:) 告诉代理菜单中的条目被点击
dropDownMenu(_:willDisplay:forRowAt:) willDisplayCell(_:) 告诉代理菜单中的单元格即将显示
updateThumbnailOnSelection(in:) updateThumbnailOnSelection(_:) 请求代理是否应在选择条目时自动更新缩略图图像

TODO Section


  • 使用闭包而不是代理进行配置
  • 根据选择的单元格内容自动更新视图
  • updateConstraints() 中设置约束(另请参阅
  • 设置Pod
  • 完成README
  • updateThumbnailOnSelection = true 时正确处理方向变化
  • 如果可能的话,使用POP而不是子类化单元格
  • 允许自定义菜单的外观(阴影、颜色等)
  • 单元和UI测试
  • Rx扩展

贡献


贡献总是受欢迎的,只需遵循以下步骤

  1. 分支
  2. 创建您的功能分支(《git checkout -b my-new-feature》)
  3. 提交您的更改(《git commit -am '添加一些功能'》)
  4. 推送到分支(《git push origin my-new-feature》)
  5. 创建新的 Pull Request

这就完了!

作者


m3g0byt3

许可证


DSDMenu 在 MIT 许可证下发布。更多信息请参阅 LICENSE