2016-09-06 84 views
0

我試圖創建測驗答案,但由於Xamarin的iOS如何創建不可重複使用的UITableViewCells

var cell = (CreateMessageNewAnswerCell)TableView.DequeueReusableCell(CreateMessageNewanswerCell.Key); 

我收到從以前的時代相同的箱尺寸。 我知道Dequeue方法重用單元格,因此大小保持原來的大小,我試圖重置大小,但它將自身置於無法解決的問題,因爲單元格會更改其大小(由於重用)的位置。

因此,我的問題是,如何創建單元而不重複使用它們。 我曾嘗試下面的代碼,但沒有奏效

var cell = new CreateMessageNewAnswerCell(UITableViewCellStyle.Default, CreateMessageNewAnswerCell.Key); 

cell.SelectionStyle = UITableViewCellSelectionStyle.None; 
cell.SetModel(createMessageSession.AddAnswersModel, indexPath.Row - 1); 
+0

那麼,尺寸有什麼問題?爲什麼不能在-heightForRowAtIndexPath委託方法的索引路徑中爲特定行指定大小? –

+0

問題基本上是我在這種情況下不能使用自動佈局的事實,因此我需要重新創建單元格,而不是重新使用現有的單元格。 – iDesireJustice

+0

你有什麼問題,heightForRowAtIndexPath,以及tableView中的單元格可重用性與自動佈局無關。 –

回答

2

如果你在你的UITableView的話,我不recommned不使用電池重用顯示類似的細胞,因爲它會產生負面影響您的滾動性能和增加內存壓力。

要在一個UITableView中處理不同大小的單元格,可以使用AutoLayout並將單元格高度設置爲Automatic Dimensions。

TableView.EstimatedRowHeight = 200; 
TableView.RowHeight = UITableView.AutomaticDimension; 

這將確保您的單元格高度動態匹配其內容。欲瞭解更多信息,請點擊這裏post

如果您仍然不想使用單元重用,那麼不要使用DequeueReusableCell,而只需在GetCell方法中返回一個新的單元實例。

+0

您的回答並不真正有幫助,因爲您不能將自動佈局用於可打字的單元格,因此您需要自行處理它們。 無論如何,我已經在處理單元類中的大小,我只需要知道如何返回一個可以工作的新單元,因爲我嘗試的代碼顯然不起作用 – iDesireJustice

+0

您的單元是否在Nib文件中定義? – wishmaster

+0

是的,我的手機是一個筆尖(xib) – iDesireJustice

相關問題