一種可展開伸縮的tableView實現

2021-07-15 19:36:21 字數 1174 閱讀 7347

:##簡單實現了乙個可展開收縮的tableview,可多級展開,一次收縮,類似於樹形結構,可擴充套件性強。

1、結點型別

@inte***ce

ymtreenode : nsobject

@property (nonatomic,copy) nsstring *nodename;//結點名字

@property (nonatomic,copy) nsstring *parentnode;//父結點名字

@property (nonatomic,assign) nsinteger nodedepth;//結點深度

@property (nonatomic,assign) bool expanded;//是否展開標誌

- (instancetype)initwithname:(nsstring*)name parent:(nsstring*)parent depth:(nsinteger)depth expanded:(bool)expanded;

@end

2、didselectrowatindexpath方法

- (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath 

endposition++;

}if (endposition == startposition) else

[self

.tableview deleterowsatindexpaths:indexpaths withrowanimation:uitableviewrowanimationnone];

}} else else

[self

.tableview insertrowsatindexpaths:indexpaths withrowanimation:uitableviewrowanimationautomatic];

// [self.tableview reloaddata];}}

node.expanded = !node.expanded;

}

理解泰勒展開的一種角度

我們可以用乙個多項式函式去逼近乙個連續可導的函式,泰勒展開就是求這樣乙個多項式函式。用乙個函式去逼近乙個函式,函式是一系列值,不是單個值,如果是單個值,那麼很簡單的直接讓其相等即可,但是若是一系列值,且是連續可導的,自然的,除了讓逼近的函式和原函式在某處的值相等以外,還需要讓其變化趨勢也一樣,這樣才...

一種可併發讀寫的佇列實現

寫演算法時頭腦要清晰,在頭腦中高速抽象分析,一般都會用迴圈或遞迴思想來完成。1 定義規則 2 確定邊界條件 3 每一步的具體操作和細節注意 例如 c實現迴圈佇列 分析如下 肯定有迴圈操作,要考慮佇列空或者滿,還有越邊界等情況,要迅速準確完成程式必須定義規則,無規矩無以成方圓。1 head和tail兩...

左偏樹 一種可並堆

在此引用黃前輩的 素材 優先佇列 priority queue 是一種抽象資料型別 adt 它是一種容器,裡面有一些元素,這些元素也稱為佇列中的節點 node 優先佇列的節點至少要包含一種性質 有序性,也就是說任意兩個節點可以比較大小。為了具體起見我們假設這些節點中都包含乙個鍵值 key 節點的大小...