用到的一些函数大概有,GetCursorPos,ScreenToClient,HitTest,GetCheck等。希望对你有用
关键词: 递归 多级菜单 复选
1.显示多级菜单,默认显示一级.
2.可以通过点击有子级的行展开菜单
3.通过复选框,改变选中状态。状态有全选、半选、未选中
4.可以扩展获取当前所选的条目集合
1.首先根Datasource进行数据处理
2.生成一个handler:MultilevelDataHandler 将数据处理逻辑在handle处理,将数据处理隔离
3.建立一个数据模型,需要用一些属性记录层级关系。最后我用了一个字典来记录原始的数据信息。
这里是Demo的数据Json
4.将jsonDictionary转化成数据模型的时候,把层级关系也一并赋值。
由于数据层级数量的不确定性,这里用递归的方式把每层的数据结构都放到其父类的subArray当中。
5.建一个新的数组用来存储要在tableView上展示的数据模型,按照父类子类,父类子类的顺序排列。我这里默认是把第一级全部关闭展示的
6.实现菜单展开关闭功能
7.实现复选框功能
根据locationArray里记录的每一层父级的序号,找到当前model的父级
由于层级数量的不确定性,所以多次使用到了递归的方式。要注意递归的结束条件,必须陷入死循环当中。
https://github.com/YuTongHon/MultilevelMenuWithCheckbox
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)