iOS 多层级列表的实现原理

来源:互联网 发布:防抖插件mac 编辑:程序博客网 时间:2024/05/22 12:22
利用tableview实现多层级的列表,也可根据数据返回实现无限层列表展开。做这个其实有两种方式:如果只需要三层,那么直接利用tableview的头+cell+opencell就可以了。如果实现多层级列表展开就需要通过如下方法:原理很简单,就是tableview刷新数据会有些麻烦。利用跟节点、父节点、子节点。一级与一级关联,将每一级的父节点、子节点、节点名称、属于哪一层级以model存储,

+ (instancetype)nodeWithParentID:(NSString*)parentID name:(NSString*)name childrenID:(NSString*)childrenID level:(NSUInteger)level isExpand:(BOOL)bol;


之后将其加入可变数组,然后将这个数组作为创建tableview的初始化的方法的一个自定参数传递。初始化tabview ,这个tableview是一个子类化的tableview,通过自定义初始化方法alloc,方法参数需要跟节点id、之前的存储model的数组、bool类型的参数判定是否需要保留、当前选中的单元格的block 

- (id)initWithFrame:(CGRect)frame nodes:(NSArray*)nodes rootNodeID:(NSString*)rootID needPreservation:(BOOL)need selectBlock:(YKSelectBlock)block;


初始化tableview之后进入这个方法,然后在这里实现:原理就是根据数据判断节点,然后根据节点的model进行单元格点击、以及单元格count的return等tableview的相关实现。如果需要具体代码的可以留个言。

0 0
原创粉丝点击