思路其實(shí)很簡(jiǎn)單。一個(gè)UITableView就能簡(jiǎn)單做到了。就像你說(shuō)的使用-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath這個(gè)方法也可以。不過(guò)我一般不是那么做。
如果我們按照QQ那樣來(lái)做。首先你得有這么一個(gè)頭控件。比如這個(gè)頭控件可以被點(diǎn)擊,有個(gè)UILable,能給他賦予標(biāo)題,有個(gè)小箭頭,點(diǎn)它會(huì)像QQ那樣會(huì)旋轉(zhuǎn)。當(dāng)然,為了記錄這個(gè)小箭頭箭頭是向下,還是向右,你需要一個(gè)能決定它方向的屬性。(如果只有兩個(gè)方向用BOOL值就可以了)。。。。
為了方便,這里我就不寫(xiě)這個(gè)控件了,用UIButton代替了- -......通過(guò)button的selected屬性來(lái)決定這個(gè)組是否要展開(kāi)。。關(guān)鍵代碼如下吧
首先是個(gè)帶導(dǎo)航的UITableViewController,接著在viewdidload里面先建立好頭控件。(當(dāng)然這里的頭控件就是3個(gè)button了)

123456.png
接著就是這些投控件的點(diǎn)擊事件buttonClick:

20140729104654_49659.png
再接著就是設(shè)置這個(gè)tableView了

20140729104815_17515.png

20140729104835_38710.png

20140729104931_875991234.png