Xamarin iOS如何创建不可重用的UITableViewCells

时间:2016-09-06 23:28:11

标签: ios objective-c swift uitableview xamarin

我正在尝试创建测验答案,但由于

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

我之前收到的盒子大小相同。 我知道Dequeue方法重用了单元格,因此大小保持原来的大小,我试图重置大小,但它会让自己陷入一个无法解决的问题,即单元格会改变其大小的位置(因为重用)。 / p>

因此我的问题是,如何在不重复使用的情况下创建单元格。 我尝试了以下代码,但它没有用

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

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

1 个答案:

答案 0 :(得分:2)

如果您在UITableView中显示类似的单元格,那么我不建议不使用单元格重用,因为它会对滚动性能产生负面影响并增加内存压力。

要在一个UITableView中处理不同大小的单元格,您可以使用AutoLayout并将单元格高度设置为自动尺寸。

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

这将确保您的单元格高度动态适应其内容。有关详细信息,请查看此post

如果您仍然不想使用单元格重用,则不要使用DequeueReusableCell而只是在GetCell方法中返回单元格的新实例。