2013-04-12 54 views
-1

我有一個UITableView重複使用單元格。我桌子上的一些單元格與其他單元格的高度稍有不同。重複使用單元格時,表格視圖似乎將單元格添加到原來的高度,然後將其設置爲新的高度。我不希望它這樣做!UITableViewCell重用

我已經嘗試將CATransactions放在我的layoutSubviews和prepareForReuse中,它們都做了一些佈局,並且禁用了操作,但是這並沒有解決問題。

單元格幾乎相同,它們只是在頂部和底部有不同數量的填充,具體取決於它們是在頂部/底部/在中間某處。

有沒有一些漂亮的技巧我在這裏失蹤?

感謝您的任何幫助!

+1

您對不同類型的單元格使用不同的* reuseIdentifiers *嗎?像* @「smallCell」*,* @「largeCell」*等等? – rdurand

+0

目前,我不是,我認爲我可以在沒有問題的情況下重用單元格,但我可能需要這樣做。 –

+0

請編輯你的問題並刪除你最後的編輯。如果你自己解決問題,回答你自己的問題,並聽取你的答案。你不應該在問題中回答這個問題。謝謝。 – rdurand

回答

0

原來,這是與動畫插入的行,而不是重複使用單元格。看起來使用UITableViewRowAnimationNone仍然可以動畫插入單元格。通過封裝調用以在禁用了操作的CATransaction中插入單元格,問題就解決了。 :)

對不起混了!

1

這不是一個竅門,但tableView:heightForRowAtIndexPath:會讓表格視圖知道單元格的高度。

+0

感謝您的迴應,但我的確在實施這種方法。 –

+0

然後你應該發佈我們所有的tableview數據源方法的代碼,所以我們可以看到你在做什麼錯誤 – Lefteris

1

使用heightForRowAtIndexPath返回每一行的高度。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    return 49; 
} 
+0

謝謝你的迴應,但我的確在實施這種方法。 –