這個文章是我15年在新浪博客上寫的混弥,現(xiàn)在主要使用簡書,所以移過來了呢钳垮。
RATreeView實(shí)現(xiàn)了UITableView中有的協(xié)議跟方法,這個很強(qiáng)大额港,所以用起來也不會那么陌生饺窿。
首先使用前引入頭文件RATreeView.h,即成RATreeView的RATreeViewDelegate, RATreeViewDataSource等移斩。
創(chuàng)建一個TreeView 顯示在當(dāng)前view中肚医,注冊cell的自定義xib。
[self.treeView registerNib:[UINib nibWithNibName:NSStringFromClass([RATableViewCell class]) bundle:nil] forCellReuseIdentifier:NSStringFromClass([RATableViewCell class])];
主要實(shí)現(xiàn)有下面幾個:
//返回每一行的高度
- (CGFloat)treeView:(RATreeView *)treeView heightForRowForItem:(id)item
//返回是否允許編輯
- (BOOL)treeView:(RATreeView *)treeView canEditRowForItem:(id)item
//點(diǎn)擊一行將要展開實(shí)現(xiàn)的動作
- (void)treeView:(RATreeView *)treeView willExpandRowForItem:(id)item
//點(diǎn)擊一行將要折疊起來實(shí)現(xiàn)的動作
- (void)treeView:(RATreeView *)treeView willCollapseRowForItem:(id)item
//編輯狀態(tài)下點(diǎn)擊刪除或編輯實(shí)現(xiàn)的動作
- (void)treeView:(RATreeView *)treeView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowForItem:(id)item
//每行數(shù)據(jù)的展現(xiàn)
- (UITableViewCell *)treeView:(RATreeView *)treeView cellForItem:(id)item
//返回子集合的數(shù)量
- (NSInteger)treeView:(RATreeView *)treeView numberOfChildrenOfItem:(id)item
//返回子集合中index下標(biāo)的對象
- (id)treeView:(RATreeView *)treeView child:(NSInteger)index ofItem:(id)item
//點(diǎn)擊一行實(shí)現(xiàn)的動作
- (void)treeView:(RATreeView *)treeView didSelectRowForItem:(id)item
RADataObject.h 和 RADataObject.m 數(shù)據(jù)模型
//初始化一個對象
- (id)initWithName:(NSString *)name object:(ShoppingList*)object children:(NSArray *)array;
//實(shí)例化一個對象
+ (id)dataObjectWithName:(NSString *)name object:(ShoppingList*)object children:(NSArray *)children;
//添加一個子對象
- (void)addChild:(id)child;
//刪除一個子對象
- (void)removeChild:(id)child;
我的github: https://github.com/LvJianfeng/RATreeView
項目作者地址:https://github.com/Augustyniak/RATreeView
希望能幫助需要的朋友向瓷。