2009-11-07 67 views
2

我正在使用具有一些標籤的自定義UITableViewCell。單元格中有一個標籤,其中的字符串長度是可變的,因此我不能在heightForRowAtIndexPath方法中爲單元格設置一個不變的高度。我也不想將計算邏輯放在我的自定義單元格中放入表代表中。設置變量UITableViewCell高度

回答

3

如何在您的單元類中定義類方法來進行計算?您可能仍然需要將委託中的一些信息傳遞給單元類(如模型對象或某些內容),並且您可能必須複製單元格的一些代碼,但至少應該使用所有的邏輯將住在細胞類中。

在您的委託中,您可以將任何將索引路徑轉換爲單元類所需的邏輯分解爲其自己的方法,可從heightForRowAtIndexPath:cellForRowAtIndexPath:中調用。

+0

這似乎是一個不錯的主意,謝謝! – cocoapriest 2009-11-07 19:51:08

8

-heightForRowAtIndexPath:是你可以設置它的地方。我知道把這個邏輯放在tableview委託中有點難看,但它不能在單元格中完成。

想一想,tableview在它實例化單元格之前必須知道單元格的高度,以便它可以計算滾動條的長度(它是成比例的)。這意味着您無法計算單元格本身的大小,因爲在實例化單元格之前,必須先了解單元格的大小。

換句話說,您不能在單元格中設置行高,因爲tableview需要知道如果用戶不滾動到它們將永遠不會實例化的單元格的高度。

相關問題