0

iphone開発初心者です。ストーリーボードでxCode 4.2を使用しています。テーブルビューにセルを取得して、複数の uilabel を表示しようとしています。それらは私のシミュレーターに表示されません。でもオリジナルcell.textLabelは登場。

これが私がしたことです: UITableViewCell を拡張する新しい customcell.h/.m ファイルを作成しました。クラスにいくつかのインスタンス変数を追加しました。ストーリーボードに移動し、tableviewcell の ID インスペクターのクラスで、customcell を指すように変更しました。いくつかの UIlabel を新しいセルにドラッグ アンド ドロップしました。次に、接続インスペクターに移動して、これらの「プラス」アイコンを線でドラッグし、新しい uilabel をインスタンス変数に接続しました。

シミュレーターを実行すると、新しい UI ラベルが表示されません。の元の uilabel しか表示されませんcell.textLabel。新しいラベルである などをプログラムcell.mylabel1で取得および設定できますが、表示されません。cell.mylabel2

追加の詳細 これは、私の tableviewcontroller の cellForRowAtIndexpath 関数です。

static NSString *CellIdentifier = @"Cell"; // this was the error, i needed to change this to CustomCell, or whatever it is in my storyboard

CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.mylabel1.text = @"hello"; // doesn't appear in simulator
cell.textLabel.text = @"world"; // does apepar in the simulator
4

1 に答える 1

2

David がほのめかしたように、ここで欠けているのは、ストーリーボードで指定されたセルの識別子を参照する必要があるということです。

まず、ストーリーボードの「属性インスペクター」で識別子を指定します。これを行うには、UITableViewCell を選択し、識別子「ExampleCell」を追加します (たとえば)。次に、CustomCell を作成するときにコードでこの識別子を参照します。

static NSString *CellIdentifier = @"ExampleCell";
CustomCell *cell = (CustomCell *) [tableView  dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault   reuseIdentifier:CellIdentifier];
}
于 2012-05-21T22:44:32.640 に答える