13

ストーリーボードでモックアップされたプロトタイプセルを持つ UITableViewController サブクラスがあります。

cellForRowAtIndexPathデリゲート メソッドには、セルを設定するかなりの量のコードがあります。問題は、セルが最初にデキューされたときに既に行われているため、セルが再利用プールからデキューされている場合、そのほとんどは必要ありません。プログラムでしかアクセスできないプロパティがいくつかあるため、ストーリーボードでは実行できません。

UITableViewController は、ストーリーボードからプロトタイプ セルを取得するときに、UITableViewCell サブクラスの初期化子を呼び出しますか? 試してみ(id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifierましたが、それはプロセスの一部ではないようです。

4

3 に答える 3

13

UITableView インスタンスが を呼び出すとdequeueReusableTileWithIdentifier:、セルは再初期化されません。代わりに、その呼び出しで、キューから取り出された UITableViewCell が を呼び出します-(void)prepareForReuse。これは、セルの再初期化にはコストがかかるためです。セルの再利用を準備するためのより簡単な方法を提供できれば (ええ、ええ、分かりますか?)、CPU の作業を大幅に節約できます。

したがって、カスタム セルを使用している場合は、 UITableViewCell をオーバーライドしますprepareForReuse

于 2012-06-15T19:00:17.413 に答える
11

私はおそらく私の質問を適切に表現していませんでしたが、私がここで探していたのは実際にはでした(void)awakeFromNib

セルがデキューされ、再利用されていないときに一度呼び出されます。ストーリーボードで行うのが意味をなさないように、プログラムでいくつかのセットアップを行うことができます。

于 2012-07-12T02:08:27.227 に答える