{"id":17179146,"url":"https://github.com/wwmz/wmztreeview","last_synced_at":"2025-08-20T10:31:44.319Z","repository":{"id":56926667,"uuid":"217220051","full_name":"wwmz/WMZTreeView","owner":"wwmz","description":"类似前端elementUI的树形控件,可自定义节点内容,支持无限极节点,可拖拽增删节点等等,非递归实现","archived":false,"fork":false,"pushed_at":"2022-12-17T08:59:42.000Z","size":489,"stargazers_count":169,"open_issues_count":1,"forks_count":23,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-10T00:41:59.456Z","etag":null,"topics":["tree","treeview"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wwmz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-24T05:42:25.000Z","updated_at":"2024-11-18T12:28:42.000Z","dependencies_parsed_at":"2022-08-21T04:20:49.437Z","dependency_job_id":null,"html_url":"https://github.com/wwmz/WMZTreeView","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wwmz%2FWMZTreeView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wwmz%2FWMZTreeView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wwmz%2FWMZTreeView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wwmz%2FWMZTreeView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wwmz","download_url":"https://codeload.github.com/wwmz/WMZTreeView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230415317,"owners_count":18222158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["tree","treeview"],"created_at":"2024-10-15T00:24:59.922Z","updated_at":"2024-12-19T10:09:07.055Z","avatar_url":"https://github.com/wwmz.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## UI效果仿照前端element-UI的[Tree控件](https://element.eleme.cn/#/zh-CN/component/tree)\n [![Platform](https://img.shields.io/badge/platform-iOS-red.svg)](https://developer.apple.com/iphone/index.action) \n [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/WMZTreeView.svg)](https://img.shields.io/cocoapods/v/WMZTreeView.svg)\n [![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://mit-license.org) \n\n# **视图层**\n\n### 正常树形显示\n\n这里显示十级  每级100条数据 总共1000条数据的效果图\n\n![treeNone.gif](https://upload-images.jianshu.io/upload_images/9163368-4c0890c33838370a.gif?imageMogr2/auto-orient/strip)\n\n```\nWMZTreeViewParam *param =TreeViewParam() .wDataSet(@[TreeParam(),TreeParam()])\nself.treeView = [[WMZTreeView alloc]initWithParam:param];\n[self.view addSubview:self.treeView];\n```\n### 可选中树形+选中高亮显示\n\n![treeSelect.gif](https://upload-images.jianshu.io/upload_images/9163368-22a48815e35c5df9.gif?imageMogr2/auto-orient/strip)\n\n```\nTreeViewParam()\n //可勾选\n.wShowCheckboxSet(YES)\n //节点字体高亮颜色\n.wHighlightCurrentSet(TreeColor(0x1d76db))\n```\n\n### 自定义节点内容+增删节点\n\n![treeCell.gif](https://upload-images.jianshu.io/upload_images/9163368-c2b322014e6d2121.gif?imageMogr2/auto-orient/strip)\n\n\n```\nTreeViewParam()\n //自定义节点内容\n.wEventTreeCellSet(^UITableViewCell *(id model, NSIndexPath *path,UITableView *table,id param) {\n      WMZMyCell *cell = [table dequeueReusableCellWithIdentifier:@\"WMZMyCell\"];\n       if (!cell) {\n          cell = [[WMZMyCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@\"WMZMyCell\" parentModel:param];\n        }\n      cell.model = model;\n      return cell;\n })\n\n增删实例方法\n\n/*\n *为 Tree 中的一个节点追加一个子节点\n  @param currrentID 当前节点\n  @param param 子节点数据\n  @return BOOL 是否追加成功\n */\n- (BOOL)append:(NSString*)currrentID node:(WMZTreeParam*)param;\n\n/*\n *为 Tree 的一个节点的后面增加一个节点\n  @param currrentID 当前节点\n  @param param 子节点数据\n  @return BOOL 是否追加成功\n */\n- (BOOL)insertAfter:(NSString*)currrentID node:(WMZTreeParam*)param;\n\n/*\n *为 Tree 的一个节点的前面增加一个节点\n  @param currrentID 当前节点\n  @param param 子节点数据\n  @return BOOL 是否追加成功\n */\n- (BOOL)insertBefore:(NSString*)currrentID node:(WMZTreeParam*)param;\n\n/*\n *删除节点\n  @param currrentID 当前节点\n  @return BOOL 是否追加成功\n */\n- (BOOL)remove:(NSString*)currrentID;\n\n\n```\n\n### 手风琴效果+指定层级可勾选 (这里选取3级结构,指定最后一级才可勾选)\n\n![treeCanSelect.gif](https://upload-images.jianshu.io/upload_images/9163368-607e5c23e4c77b1e.gif?imageMogr2/auto-orient/strip)\n\n\n```\n//手风琴效果 同级只展开一级\nTreeViewParam().wAccordionSet(YES)\n\n//能否选择\nTreeParam().canSelectSet(NO)\n```\n### 勾选不关联父节点和子节点+默认选中+默认全部展开\n\n![treeCheck.gif](https://upload-images.jianshu.io/upload_images/9163368-c651d0107797fc8c.gif?imageMogr2/auto-orient/strip)\n\n```\nTreeViewParam()\n//父节点和子节点 勾选不关联\n.wCheckStrictlySet(NO)\n//默认展开全部 \n.wDefaultExpandAllSet(YES)\n//默认勾选\n.wDefaultExpandedKeysSet(@[@\"5\",@\"10\",@\"12\"])\n\n```\n### 开启拖拽\n![treeDraggable.gif](https://upload-images.jianshu.io/upload_images/9163368-5c6a589140e7078a.gif?imageMogr2/auto-orient/strip)\n\n```\nTreeViewParam()\n//拖拽\n.wDraggableSet(YES)\n```\n\n# **模型层**  \n1 任意模型实现WMZTreeProcotol协议\n```\n参考WMZCustomModel\n```\n1.使用或继承WMZTreeParam （已经实现了WMZTreeProcotol协议）\n```\nWMZTreeParam *tree = WMZTreeParam.new;\ntree.cueerntId =  @\"1\";\ntree.parentId =  @\"2\";\ntree.name =  @\"第一级\";\n```\n\n2.NSDictionary\n```\n    @[\n        @{\n            WMZTreeName:@\"1级\",\n            WMZTreeCurrentId:@\"1\",\n            WMZTreeChildren:@[\n                    @{\n                        WMZTreeName:@\"1_2_1级\",\n                        WMZTreeCurrentId:@\"1_2_1\",\n                        WMZTreeParentId:@\"1\",\n                        WMZTreeChildren:@[\n                                           @{\n                                               WMZTreeName:@\"1_3_1级\",\n                                               WMZTreeCurrentId:@\"1_3_1\",\n                                               WMZTreeParentId:@\"1_2_1\",\n                                           },\n                                           @{\n                                               WMZTreeName:@\"1_3_2级\",\n                                               WMZTreeCurrentId:@\"1_3_2\",\n                                               WMZTreeParentId:@\"1_2_1\",\n                                           },\n                                          @{\n                                               WMZTreeName:@\"1_3_3级\",\n                                               WMZTreeCurrentId:@\"1_3_3\",\n                                               WMZTreeParentId:@\"1_2_1\",\n                                           },\n                                   ]\n                    },\n                    @{\n                        WMZTreeName:@\"1_2_2级\",\n                        WMZTreeCurrentId:@\"1_2_2\",\n                        WMZTreeParentId:@\"1\",\n                    },\n                   @{\n                        WMZTreeName:@\"1_2_3级\",\n                        WMZTreeCurrentId:@\"1_2_3\",\n                        WMZTreeParentId:@\"1\",\n                    },\n            ]\n        },\n        @{\n            WMZTreeName:@\"2级\",\n            WMZTreeCurrentId:@\"2\",\n            WMZTreeChildren:@[\n                    @{\n                        WMZTreeName:@\"2_2_1级\",\n                        WMZTreeCurrentId:@\"2_2_1\",\n                        WMZTreeParentId:@\"2\",\n                    },\n                    @{\n                        WMZTreeName:@\"2_2_2级\",\n                        WMZTreeCurrentId:@\"2_2_2\",\n                        WMZTreeParentId:@\"2\",\n                    },\n                   @{\n                        WMZTreeName:@\"2_2_3级\",\n                        WMZTreeCurrentId:@\"2_2_3\",\n                        WMZTreeParentId:@\"2\",\n                    },\n            ]\n        },\n        @{\n            WMZTreeName:@\"3级\",\n            WMZTreeCurrentId:@\"3\",\n            WMZTreeChildren:@[\n                    @{\n                        WMZTreeName:@\"3_2_1级\",\n                        WMZTreeCurrentId:@\"3_2_1\",\n                        WMZTreeParentId:@\"3\",\n                    },\n                    @{\n                        WMZTreeName:@\"3_2_2级\",\n                        WMZTreeCurrentId:@\"3_2_2\",\n                        WMZTreeParentId:@\"3\",\n                    },\n                   @{\n                        WMZTreeName:@\"3_2_3级\",\n                        WMZTreeCurrentId:@\"3_2_3\",\n                        WMZTreeParentId:@\"3\",\n                    },\n            ]\n        }\n    ]\n```\n\n## 配置参数\n| 可配置参数               | 类型      | 作用                                                    |\n|------------------------|-----------|--------------------------------------------------------|\n| cueerntId                | NSString      | 当前节点ID 必传              |\n| parentId                | NSString      | 父节点ID,不传表示第一级                       |\n| name      | NSString      | 显示的文本                                  |\n| isExpand             | BOOL      | 是否展开 默认NO  |\n| canSelect            | BOOL      | 能否选中 默认NO |\n| data            | id      | 携带的其他数据|\n\n### 其他具体看demo\n\n### 依赖\n无任何依赖 \n\n安装\n==============\n\n### CocoaPods\n1. 将 cocoapods 更新至最新版本.\n2. 在 Podfile 中添加 `pod 'WMZTreeView'`。\n3. 执行 `pod install` 或 `pod update`。\n4. 导入 #import \"WMZTreeView.h\"。\n\n### 手动安装\n\n1. 下载 WMZTreeView 文件夹内的所有内容。\n2. 将 WMZTreeView 内的源文件添加(拖放)到你的工程。\n3. 导入 #import \"WMZTreeView.h\"\n\n系统要求\n==============\n该库最低支持 `iOS 9.0` 和 `Xcode 9.0`。\n\n\n\n许可证\n==============\n使用 MIT 许可证，详情见 [LICENSE](LICENSE) 文件。\n\n\n个人主页\n==============\n使用过程中如果有什么bug欢迎给我提issue 我看到就会解决\n[简书地址](https://www.jianshu.com/p/dedf610739be)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwwmz%2Fwmztreeview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwwmz%2Fwmztreeview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwwmz%2Fwmztreeview/lists"}