0

UITableViewCellサブクラスがあります。2つのUIColor変数を含める必要があります。ヘッダーでそれらを宣言しましたが、実装のどこで後でアクセスできるように値を設定しますか?

viewDidLoadセルがロードされたときにこれらを設定できるように、と同様の方法が必要です。私はそれらを設定しようとしましたinitWithStyleが、セルを作成するためにそれを使用しないので、それは良くありません。

私のビューコントローラでは、以下のようにそれらをロードします。

CustomCell *cell = [tv dequeueReusableCellWithIdentifier:cellIdentifier];

では、これらの変数をどこに設定しますか?(私はそれらをサブクラス内に保持しようとします。)

編集

これが私のcellForRowAtIndexPath方法です:

- (CustomCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"Cell";

    CustomCell *cell = [tv dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];

    return cell;
}
4

2 に答える 2

1

ストーリーボードとプロトタイプを使用している場合、セルはawakeFromNib最初に作成されたときにそれを呼び出します。ここにコードを入れることができます。

initWithStyle:セルがペン先からロードされているため、は呼び出されません。代わりにを使用して初期化されますinitWithCoder:。コードをそこに配置することも、そこから呼び出される共有セットアップメソッドとinitWithStyleに配置することもできます(将来、セルの使用方法を変更した場合)。

于 2012-11-21T17:00:53.150 に答える
0

initWithStyleはUITableViewCellクラスの指定された初期化子であるため、そのメソッドを使用してUITableViewCellを初期化する必要があります。セルの初期化があり、デキューに使用できるセルがある場合にのみ、デキューが機能します。

セルがnilの場合、割り当てて初期化したコードを確認できます。

于 2012-11-21T16:46:58.077 に答える