2013-01-01 150 views
0

我有CustomCell,在我CustomCell我加UIImageUILabel ... 但是,當我在第1行選擇的小區,在它刪除UIImage一個UITableView:在指數[[cell.contentView viewWithTag:TAG_FOR_TOPIMAG]removeFromSuperview];然而,細胞7改爲同一單元格1.的UITableView-didSelectRowAtIndexPath方法的問題時,調用didSelectRowAtIndexPath方法

+0

很難說不知道如何初始化單元格。 如果你正在共享UIView實例,你必須知道一個UIView只能是一個視圖層次結構的一部分。 – pmau

回答

0

表格視圖重用了單元格(dequeueReusableCell ...)。
因此,同一單元格(視圖)可用於表中多於1個索引。
更改單元格的佈局(添加/刪除/修改子視圖)後,每當單元格顯示在屏幕上時,該單元格(視圖)都會顯示修改 - 即使它每次都表示不同的索引。

例如,對於您的情況,您可能最多在屏幕上同時顯示6個單元格。
因此,您修改了某個單元格(在修改該單元格後顯示索引1),之後您已滾動表格,索引爲1的單元格從屏幕中消失,則索引爲7的單元格應爲呈現(在滾動期間)。該表將使用用於顯示具有索引1的行的相同單元格(完全相同的UITableViewCell對象)。
但您已將圖像從其中移除...

您必須牢記所有當你使用表格工作時。
在你的情況下,我建議你將圖像視圖的可見性設置爲隱藏,並在每個tableView"cellForRowAtIndexPath:方法中(不在if (cell == nil)聲明中 - 在它之後)恢復它。

+0

感謝您的回覆,我已通過「setHidden:YES」更改了「removeFromSuperview」。但它不會改變! –

+0

根據我的回答,這不是唯一應該做的事情。您必須在cellForRowAtIndexPath方法中恢復其隱藏狀態。您應該在數據結構中保存這個隱藏/可見狀態,並且每次從cellForRowAtIndexPath返回一個單元格之前,都應該將其設置爲... –

相關問題