問題タブ [reuseidentifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4664 参照

ios - iOS:reuseidentifier でセルのコンテンツがクリアされない

UILabels に配列をリストするセルを含むテーブルを作成しようとしています。したがって、各セルには、その配列内のオブジェクトの数によって決定されるラベルのサイズと量があります。ただし、コンテンツが最初に正しく入力されるという問題が発生していますが、スクロール中に表のセルがリサイクルされると、コンテンツがクリアされません。

壊れた UITableView オーバーラップ セル コンテンツ

これが私の実装全体です。リサイクル プロセス中にラベルが保持されないようにする方法について、誰かが説明していただければ幸いです。ありがとうございました。

ViewController.h

ViewController.m

CustomCell.h

CustomCell.m

0 投票する
2 に答える
1104 参照

ios - 現在の UITableViewCell への参照を取得する方法

私の実験では、最初UITableViewCellに tableView を参照する必要があります。いくつかのアクションで、画像と他のいくつかのセル プロパティを設定し、tableView がスクロールされてもこのセルのみの状態を維持する必要があります。このプロパティはすべて、再利用により、スクロールによって null になる可能性があります (実際にはそうです)。セルが画面に表示されるたびにこのプロパティを設定するには、「-cellForRowAtIndexpath」内で次を使用して最初のセルをキャッチしようとしました:

しかし、このように見えますが、次のスクロール可能な「画面」で次の最初のセルをすべてキャッチすることしかできません。では、最初の UITableView セルへの参照を取得するにはどうすればよいですか?

0 投票する
0 に答える
115 参照

ios7 - 再利用された UITableView セルが適切に再構築されない

tableView が関連付けられたテーブル ビュー コントローラーがあります。このリストのセルには tableView も含まれています。具体的には、セルには tableView があり、セルの各インスタンスは埋め込まれた tableView を使用して、わずかに異なる名前のリストを表示しています。以下に図を示します。

  1. 親テーブルビュー
  2. __tableViewCell
  3. ____埋め込みテーブルビュー
  4. ______name1 (セル内)
  5. ______名前2」
  6. ______name3「</li>

埋め込み tableView 用のビュー コントローラーはありません。デリゲートと dataSource は両方とも、埋め込みの tableView クラスにマップされます。これはすべて絵コンテベースです。

シミュレーターでは、この設定はリストに表示される最初のいくつかのセルではうまく機能します — それぞれが独自の名前のリストを表示しています — しかし、4 番目または 5 番目のセルの後 (はい、何度か画面外にスクロールしました)、セルは引き続き表示されますが、埋め込みテーブル ビューによって生成されていません。古くて不正確な名前のリストがあります。その時点で、埋め込まれた tableView に対して awakeFromNib も initWithCoder も呼び出されません (どちらも正常に表示されたセルに対して呼び出されます)。

これは、(私にとって) 親の tableView (埋め込まれた tableView を持つセルを所有するもの) が、再利用リストから引き出しているセルを再利用していることを意味します。これにより、いくつかの疑問が生じます。

  1. なぜ細胞を再構築しようとしないのですか? 親の tableView の tableView:cellForRowAtIndexPath で、セルを取得し、いくつかの情報を入力します (たとえば、セルに UILabel があるため、それを識別できます)。そのための新しいコンテンツが機能しますが、埋め込まれた tableView の部分はセルは再構築されません。

  2. これが再利用されたセルがキャッシュから取り出された場合、キャッシュされた各アイテムを「ダーティ」としてマークして再構築できるようにするにはどうすればよいですか? tableView:didEndDisplayingCell:forRowAtIndexPath: は認識していますが、それを使用して再構築を行う方法がわかりません。たとえば、セルを削除しようとしましたが (つまり、セル = nil)、それは役に立ちませんでした (親の tableView と埋め込まれた tableView の両方でこれを行いました)。

  3. prepareForReuse の説明 (属性以上のものを変更したいので試しませんでした) では、次のように述べています。セル オブジェクトに関連付けられた再利用識別子がない場合、このメソッドは呼び出されません。このメソッドをオーバーライドする場合は、必ずスーパークラスの実装を呼び出す必要があります。」それはまさに私がやろうとしていることですが、埋め込まれた tableView はどういうわけかこれを回避しています (awakeFromNib も initWithCoder も呼び出されていないことを思い起こさせます。

ありがとうございました。

0 投票する
1 に答える
324 参照

swift - UITableViewCellが識別子を再利用するのと同じように、クラス属性を迅速に宣言する方法は?

UITableView サブクラスに関連付けられた再利用識別子を迅速に宣言しようとしています。

私の理解では、クラスに保存されたプロパティ(インスタンスのものではない)を宣言したいので、MyCustomTableCell.ReuseIdentifer経由でアクセスできます。

これが私が試していたものです:

コンパイラは、クラス属性はまだサポートされていないと述べています。クラス型に関連付けられたそのような種類の定数をきれいな方法で宣言するにはどうすればよいですか?

0 投票する
3 に答える
2010 参照

ios - Storyboard コントローラーでプロトタイプ化されたセルとして定義されたカスタム UITableViewCell を再利用する方法

2 つの異なる UITableViewControllers/TableViews の項目の唯一のセル テンプレートがあります。私が必要とするのは、それを一度定義してから、他の UITableView で再利用することです

問題は、セルプロトタイプを含まない UITableView でこのメソッドを呼び出すと、NULL になることです。

複数のテーブル コントローラーでプロトタイプのセルを再利用するにはどうすればよいですか? xib ではなく、ストーリーボードでセル テンプレートを定義したい。