我目前在編碼方面面臨一個大問題,但我找不到任何解決方案。Double-sectioned expandable tableview
Just as you can see here,我想創建一個可擴展的實現代碼如下:
- 類分爲2個部分
- 小類
我的意思是,如果你點擊 「2A」,將「 2A-1「,」2A-2「等列表展開。如果您點擊「2B」,則「2B-1」,「2B-2」列表爲,依此類推。
你覺得我可以如何管理它?
我目前在編碼方面面臨一個大問題,但我找不到任何解決方案。Double-sectioned expandable tableview
Just as you can see here,我想創建一個可擴展的實現代碼如下:
我的意思是,如果你點擊 「2A」,將「 2A-1「,」2A-2「等列表展開。如果您點擊「2B」,則「2B-1」,「2B-2」列表爲,依此類推。
你覺得我可以如何管理它?
我已經在少數產品中編寫了這種性質的解決方案。完成這個的代碼有點廣泛,所以我會給你一個高層次的概述。
創建每個「行」作爲一個部分。顯然,覆蓋viewForHeaderInSection
等等,以便使每個節標題看起來像一排。
讓你的視圖控制器保存數組,其中部分被擴大(非展開處於摺疊狀態)
在- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
檢查,看是否該部分可進行擴展,如果是,則返回子項目的數量,否則,返回0.
因此,cellForRowAtIndexPath總是返回子項目,而viewForHeaderInSection總是返回父項。
當用戶點擊該標題單元格,切換部分擴展標誌和reloadSections:withRowAnimation:
得到一個不錯的動畫過渡
一個音符,由於之前iOS6的,節頭總是重建,並不會被緩存,性能並不好。使用IOS6,這個問題也可以通過回收標題單元來解決。
對於膨脹室,你可以使用VPPDropDown類,我用它自己,它的好:)
有很多代碼/博客的使用,但我發現執行,使定製過程中非常容易這個拖放類根據我的要求:
你可以做同樣的事情,沒有頭,只是在numberOfRowsInSection,這是你的第一行返回1。那麼你不必「讓每個部分的頭部看起來像一排」,並且不需要擔心iOS6之前的緩存問題。 +1雖然。 – lnafziger
非常感謝!但恐怕我不明白,也許是因爲我開始了:創建行後,如何根據點擊區域(取決於左側還是右側)擴展不同的小節? –