我正在使用MonoTouch,我有一个自定义的单元格视图,但没有被重用。
NSString
作为_cellId
类型感谢。
public override UITableViewCell GetCell (UITableView tableView,
NSIndexPath indexPath)
{
UITableViewCell cell = tableView.DequeueReusableCell(_cellId);
LibraryItem item = _items[indexPath.Row];
LibraryCellView cellController = null;
if (cell == null)
{
cellController = new LibraryCellView();
cell = cellController.Cell; // cellController.Cell;
cell.Tag = Environment.TickCount;
_cellControllers[cell.Tag] = cellController;
Console.WriteLine("Cell New");
}
else
{
cellController = _cellControllers[cell.Tag];
Console.WriteLine("Cell Reused");
}
cellController.Name = item.Name;
cellController.Date = item.CreatedDate.ToShortDateString();
cellController.Shared = item.IsShared ? "Shared":"";
cellController.Count = item.Count.ToString();
cellController.ImageCoverId1 = item.CoverPictureId1;
return cell;
}
答案 0 :(得分:1)
一些笔记
您是否为每个细胞使用控制器?
然后,你在哪里宣布_cellId
?
最后,请注意cell.Tag = Environment.TickCount;
。 Environment.TickCount
调用可能会导致问题,因为它可能足够快以创建相同的标记。
说这个,我认为你并不需要一个控制器(如果你使用它)为每个单元格。您可以创建一个扩展UITableViewCell
的自定义类,并按原样使用它。如果您使用xib界面,我建议您阅读帖子creating-custom-uitableviewcells-with-monotouch-the-correct-way。
希望它有所帮助。