1

MonoTouch を使用していますが、再利用されていないカスタム セル ビューがあります。

  1. IBUIReuseIdentifier を設定してみました
  2. 文字列とタイプを使用してみNSStringました_cellId
  3. プロジェクトの再作成を試みました。
  4. 面白いことに、他のカスタム セルは正常に動作していますが、作成した新しいセルは再利用されていません。次にどこを見ればいいのかよくわかりません。

ありがとう。

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;
}
4

1 に答える 1

1

いくつかのメモ

セルごとにコントローラを使用していますか?

では、どこで宣言しました_cellIdか?

最後に、注意してcell.Tag = Environment.TickCount;ください。Environment.TickCount呼び出しは、同等のタグを作成するのに十分な速さである可能性があるため、問題を引き起こす可能性があります。

これは、各セルにコントローラーを使用する場合は実際には必要ないと思います。拡張UITableViewCellしてそのまま使用するカスタム クラスを作成できます。xib インターフェイスを使用している場合は、「creating-custom-uitableviewcells-with-monotouch-the-correct-way」の投稿を読むことを強くお勧めします。

それが役に立てば幸い。

于 2012-06-02T15:15:28.053 に答える