3

すべてのセルがロードされた後、テーブルビューが UITableViewCell をリサイクルしないようにする方法はありますか (つまり、tableView:cellForRow...)?

テーブルビューをスクロールビューに配置し、テーブルビューをスクロールビューと同じサイズにすることができるので、すべてのセルが読み込まれますが、一部のセルのサイズが可変であるため、スクロールを更新する必要がありますセルのサイズが変更された後のビューのコンテンツ サイズ。

これを行う他の方法はありますか?

アップデート:

誤解を招いて申し訳ありませんが、実際には、一度作成されたセルを削除しないようにする方法を意味しているため、10 個のセルがあり、dequeueReusableCell によって返されるセルがなく、10 個の後に tableView:cellForRow: 再度呼び出されることはありません.

再利用可能な識別子を使用しないと、必要に応じて毎回新しいセルが作成されます。位置 1 のセルが作成されても、位置 2 に再利用されます。

4

3 に答える 3

8

restartIdentifierをnilに設定します。

これは、セルごとに異なる識別子を使用するよりもはるかに優れています。これにより、テーブルで不要なセルをすばやく処理できるようになります。識別子が設定されている場合、それらを再利用するかどうかを判断する方法はありません。

したがって、不要なセルのためだけに、再利用部分を完全に見逃す必要はありません。新しいセルに同じサブビューが含まれている場合(レイアウトと構成が異なる場合もあります)、再利用したほうがよい場合があります。

于 2012-10-05T08:00:22.513 に答える
0

メソッドで使用- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier しないで、cellForRowAtIndexPath毎回新しいセルを作成してください。もう 1 つの方法は、作成するセルごとに異なるセル識別子を指定することです。

ここで、テーブルビューでセルをリサイクルしたくない理由を詳しく説明できれば(これはテーブルビューの強力な機能の1つです)、セルを再利用して同じことを達成する他の方法を見つけることができるかもしれません..!!

それが役に立てば幸い..:)

于 2012-10-05T07:55:21.987 に答える
0

cellIdentifier を使用しないか、セルごとに異なる識別子を使用してください。

于 2012-10-05T07:34:50.440 に答える