2015-11-03 92 views
0

我有一個自定義單元格。它有兩個文本字段和按鈕,所有這些都是我在故事板中創建的。但是當我滾動我的下一個單元格出現與新的文字,但與舊按鈕(從第一個單元格按鈕)。UITableViewCell部分重複

LessonCell *cell = (LessonCell *)[self.lessonTV dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) 
     cell = [[LessonCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 

但在我的情況下,這是不夠的,它不工作,我的細胞重複,當我滾動,你可以幫我:

據很多教程這種重複的細胞必須在使用該行固定?

還有一點:重複只有第一個單元格((

+0

顯示你的整個'cellForRowAtIndexPath'方法。 – rmaddy

+0

@rmaddy它是巨大的,有很多的邏輯,我把它放在這裏 - http://codeshare.io/2Ywd9 –

+0

大部分的邏輯應該在你的自定義單元類的代碼。 – rmaddy

回答

2

如果你有一個自定義的類來表示的細胞,您可以覆蓋-[UITableViewCell prepareForReuse]方法以重置出現的單元格。

一個側面說明:

[tableView dequeueReusableCellWithIdentifier:] 

你應該使用

[tableView dequeueReusableCellWithIdentifier:forIndexPath:] 

後者不會被棄用,則不應使用,並且它有一些運行時檢查,這將幫助你。

0

當你第一次創建單元格,將一些值初始化所以,當你向下滾動,將出隊的老小區了,既然你。不修改它,老一套的內容將被顯示。你可以有一個updateCell方法,每次加載細胞更新UI元素和內容。

LessonCell *cell = (LessonCell *)[self.lessonTV dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) 
    cell = [[LessonCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
[self updateCell]; 


-(void)updateCell{ 
    //do all content and ui updations here 
}