iOS中tableview 兩級(jí)cell的展開與收回的示例代碼
由于文章內(nèi)容的限制,我們接著在上文的內(nèi)容展開,上文的方案中還是存在一個(gè)問題的,如果我們展開了多個(gè)section,并且展開的section不在屏幕上面,當(dāng)我們滑動(dòng)的時(shí)候,section再次回到屏幕的時(shí)候,展開的圖標(biāo)就不是再往下了,如下圖所示:

我們來具體的分析一下,首先考慮是復(fù)用的問題,當(dāng)section要顯示的時(shí)候,就會(huì)從復(fù)用池里面找到ID一樣的section,然后找到了section,拿過來直接用,這里僅僅把顯示的內(nèi)容修改了一下,并沒有判斷section里面圖標(biāo)是展開狀態(tài)還是為展開狀態(tài)。好了,到這里我們分析出問題的所在,那么,我們我們應(yīng)該在修改程序呢?當(dāng)section要顯示的時(shí)候,我們要判斷一下section展開圖標(biāo)的狀態(tài),然后將它設(shè)置成正確的圖片。那么我們只要在GetViewForHeader里面添加如下的代碼
//數(shù)據(jù)重新加載的時(shí)候,展開圖標(biāo)的重新設(shè)置
f (Title [(int)section].ExplandFlag) {
headerView.ExplandButton.SetImage (UIImage.FromBundle ("arrowD"), UIControlState.Normal);
else {
headerView.ExplandButton.SetImage (UIImage.FromBundle ("arrow"), UIControlState.Normal);
當(dāng)你會(huì)發(fā)現(xiàn),程序還有一些漏洞,當(dāng)你在收回一些section(這些個(gè)section是從復(fù)用池操作過來的),圖標(biāo)缺收回不過來。如下圖所示:

這里又是啥原因呢?我們仔細(xì)考慮一下,是不是當(dāng)我們從復(fù)用池拿過一個(gè)section的時(shí)候,原來的按鈕是旋轉(zhuǎn)了90度,然后直接給它換了一個(gè)對(duì)應(yīng)的圖片,然后點(diǎn)擊收回的時(shí)候,按鈕帶著這個(gè)圖片又開始旋轉(zhuǎn),所以會(huì)出現(xiàn)錯(cuò)誤。那么我們是不是在圖片旋轉(zhuǎn)要旋轉(zhuǎn)的時(shí)候,將圖片對(duì)應(yīng)的修改一下,代碼如下:
//標(biāo)志位改變
Title[(int)section].ExplandFlag=false;
//圖標(biāo)的復(fù)位
UIButton explandButton=(UIButton)sender;
explandButton.SetImage (UIImage.FromBundle ("arrow"), UIControlState.Normal);
myTabViSource.ReturnRotate(explandButton);
//數(shù)據(jù)插入
int length=Title[(int)section].SecondTitle.Count;
NSIndexPath[] arrayIndexPath=new NSIndexPath[length];
for(int i=0;i<length;i++)
{
arrayIndexPath[i]=NSIndexPath.FromRowSection((nint)i,section);
}
tableview.DeleteRows(arrayIndexPath,UITableViewRowAnimation.Automatic);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解IOS UITableViewCell 的 imageView大小更改
- IOS UITableViewCell詳解及按鈕點(diǎn)擊事件處理實(shí)例
- 詳解ios中自定義cell,自定義UITableViewCell
- IOS UITableView和UITableViewCell的幾種樣式詳細(xì)介紹
- iOS App開發(fā)中使用及自定義UITableViewCell的教程
- 詳解iOS tableViewCell自適應(yīng)高度 第三發(fā)類庫
- 全面解析iOS應(yīng)用中自定義UITableViewCell的方法
- iOS中使用UItableviewcell實(shí)現(xiàn)團(tuán)購和微博界面的示例
相關(guān)文章
iOS動(dòng)畫解析之圓球加載動(dòng)畫XLBallLoading的實(shí)現(xiàn)
加載動(dòng)畫對(duì)大家來說都不陌生,我們?cè)谄綍r(shí)都會(huì)遇見,開發(fā)中也必不可少,所以下面這篇文章主要給大家介紹了關(guān)于iOS動(dòng)畫解析之圓球加載動(dòng)畫XLBallLoading實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11
iOS中l(wèi)ebel特殊字符的自動(dòng)換行問題解決
這篇文章主要給大家介紹了關(guān)于iOS中l(wèi)ebel特殊字符的實(shí)現(xiàn)不自動(dòng)換行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)iOS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
iOS開發(fā)中TabBar再次點(diǎn)擊實(shí)現(xiàn)刷新效果
這篇文章主要介紹了iOS開發(fā)中TabBar再次點(diǎn)擊實(shí)現(xiàn)刷新效果,實(shí)現(xiàn)方法也很簡(jiǎn)單,需要的朋友可以參考下2018-04-04
iOS動(dòng)態(tài)驗(yàn)證碼實(shí)現(xiàn)代碼
本文通過實(shí)例代碼給大家介紹了ios動(dòng)態(tài)驗(yàn)證碼的實(shí)現(xiàn)方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-04-04
iOS實(shí)現(xiàn)遠(yuǎn)程推送原理及過程
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)遠(yuǎn)程推送原理及具體過程,圖文結(jié)合的方式針對(duì)iOS遠(yuǎn)程推送進(jìn)行分析,感興趣的小伙伴們可以參考一下2016-05-05
iOS實(shí)現(xiàn)手動(dòng)和自動(dòng)屏幕旋轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)手動(dòng)和自動(dòng)屏幕旋轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07

