下拉标签选择器

下拉标签选择器
DropDownMenuView
简单的下拉标签选择器,提供选中和取消选中,单链表和双链表组合,支持代理配置图片,可以自定义配置

仓库地址:https://github.com/gu0315/DropDownMenuView

先看下效果在这里插入图片描述
:

效果图
实现思路
通过代理设置每列样式,数据原,代理数据传递给tableView,collectionView刷新数据,通过每列样式更改样式

可支持的配置项

final class DMConfiguration {

///Cell的高度,默认44

varcellHeight:CGFloat=44;

///内容的高度

var contentViewHeight:CGFloat = 300;

///是否自适应高度,默认为False

var isAdaptiveHeight:Bool = false

///标题颜色

var textColor:UIColor = UIColor.darkGray

// 当有二级列表时,点击row 是否调用点击代理方法

var isRefreshWhenHaveRightItem:Bool = false

///标题选中颜色

var highlightedTextColor:UIColor = UIColor.orange

///有多少分区

varnumOfMenu:Int=0;

///字体大小

varfontSize:CGFloat=15

///标题的颜色

vartitleColor:UIColor= .darkGray

///是否显示分割线颜色.默认显示

var isShowSeparator:Bool = true

///分割线占比高度

var separatorHeighPercent:CGFloat = 0.5;

///分割线颜色

var separatorColor:UIColor = .lightGray

///指示器图标位置,默认文字右侧

var indicatorAlignType:IndicatorAlignType = .IndicatorAlignCloseToTitle

///背景颜色

varmaskColor:UIColor=UIColor.init(white:0.4, alpha:0.2)

///切换条件时是否更改menu title

var isRemainMenuTitle:Bool = true

///cell文字大小

varcellTitleFont=UIFont.systemFont(ofSize:14)

init() {

   self.defaultValue()

}

func defaultValue() {

}

}

代理回调

@objc public protocol DMenuViewDataSource: NSObjectProtocol {

///返回有多少列

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

///左侧TableView每列有多少条数据

@objcfuncnumberOfRowsInColumn(menu:DropDownMenuView, column:Int) ->Int

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

@objcfunctitleForRowAtIndexPath(menu:DropDownMenuView, column:Int, row:Int) ->DMRowData

///右侧CollectionView或者TableView有多少条数据

@objcoptionalfuncnumberOfRightItemInMenu(menu:DropDownMenuView, column:Int, row:Int) ->Int

///右侧CollectionView或者TableView对应的每行的数据

@objcoptionalfunctitleForRightRowAtIndexPath(menu:DropDownMenuView, column:Int, leftRow:Int,  

rightRow:Int) ->DMRowData

///返回每列的类型,默认只有一个tableView

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

 DMenuViewColumnType

///左边tableView所占比例

@objcoptionalfuncleftTableViewWidthScale(menu:DropDownMenuView, column:Int) ->CGFloat

}

@objc public protocol DMenuViewDelegate: NSObjectProtocol {

///点击回掉

@objcoptionalfuncdidSelectRowAtIndexPath(menu:DropDownMenuView, column:Int, leftRow:Int, 

rightRow:Int);

///标签选择显示状态

@objcoptionalfuncmenuIsShow(menu:DropDownMenuView, isShow:Bool)

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值