DropDownMenuView 0.0.2

DropDownMenuView 0.0.2

顾钱想维护。



DropDownMenuView 下拉菜单

标签选择器下拉菜单,通过代理设置数据,支持高度自适应,支持双链表联动tableView和collectionView,链表宽度设置,通过DMConfiguration配置样式,使用方便简单

#要求

* Swift 5
* iOS 10.0 +

示例

aOdDgg.gif

链接至图片

aOUri8.md.gif

链接至图片

[aOUBIf.md.gif

使用

@objc public protocol DMenuViewDataSource: NSObjectProtocol {

/// 返回有多少列

/// - 参数 menu: 菜单

@objc func numberOfColumnsInMenu(menu:DropDownMenuView) -> Int

/// 选中左侧第几列显示多少行

/// - 参数

/// - menu: 菜单

/// - column: 第几列

/// - 返回: 返回的行数

@objc func numberOfRowsInColumn(menu:DropDownMenuView, column: Int) -> Int

/// 左侧TableView对应的每行的数据

/// - 参数

/// - menu: 菜单

/// - column: 第几列

/// - row: 第几行

/// - 返回: 菜单第几列第几行的数据

@objc func titleForRowAtIndexPath(menu:DropDownMenuView, column:Int, row: Int) -> DMRowData

/// 设置菜单第右column列,左侧TableView第row行的右侧CollectionView或TableView有多少条数据

/// - 参数

/// - menu: 菜单

/// - column: 第几列

/// - row: 左侧TableView的第row行

/// - 返回: 数据

@objc optional func numberOfRightItemInMenu(menu:DropDownMenuView, column: Int, row: Int) -> Int

/// 设置菜单第右column列,左侧TableView第row行的右侧CollectionView或TableView对应的每行的数据

/// - 参数

/// - menu: 菜单

/// - column: 第几列

/// - row: 左侧TableView的第row行

/// - 返回: 数据

@objc optional func titleForRightRowAtIndexPath (menu:DropDownMenuView, column: Int, leftRow: Int, rightRow: Int) -> DMRowData

/// 返回菜单第column列的类型,默认只有一个tableView

/// - 参数

/// - menu: 菜单

/// - column: 第几列

@objc optional func columnTypeInMenu(menu:DropDownMenuView, column: Int) -> DMenuViewColumnType

/// 菜单第column列左边tableView所占比例

/// - 参数

/// - menu: 菜单

/// - column: 第几列

@objc optional func leftTableViewWidthScale(menu:DropDownMenuView, column: Int) -> CGFloat

}

@objc public protocol DMenuViewDelegate: NSObjectProtocol {

/// 点击回调

/// - 参数

/// - menu: 菜单

/// - column: 第几列

/// - leftRow: 左侧第多少行

/// - rightRow: 右侧第多少行

@objc 可选 func didSelectRowAtIndexPath(menu:DropDownMenuView, column: Int, leftRow: Int, rightRow: Int);

/// 标签选择显示状态

/// - 参数

/// - menu: 菜单

/// - isShow: 是否显示

@objc 可选 func menuIsShow(menu:DropDownMenuView, isShow: Bool)

}