2

これは簡単なことのように思えますが、私は立ち往生しています。

ストーリーボードには、ラベルにテキストを含むセルがあります (静的セルを使用)。didSelectRowAtIndexPath で、セルの textLabel のテキストにアクセスしようとしています。NSLogging を使用した私のコードは次のとおりです。

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
if (cell.textLabel.text) {
      NSLog(@"cell.textLabel.text = %@",cell.textLabel.text);
  } else {
      NSLog(@"!cell.textLabel.text");
  }
NSLog(@"just for fun: cell.textLabel.text = %@", cell.textLabel.text);

if ステートメントは常に "!cell.textLabel.text" を返し、ストーリーボードのセルにはテキストが含まれていますが、最後の NSLog は常に (null) です。

cell.textLabel は正しくありませんか? UITableViewCell の別のサブビューを見る必要がありますか?

4

1 に答える 1

1

ストーリーボードのテーブル セルのデフォルトのセル スタイルは、「カスタム」タイプです。これにより、他のタイプのコントロールを追加できる空のセルが得られます。

ラベルをセルにドラッグしてそのテキストを変更した場合、UITableViewCell のカスタム スタイルを使用している可能性があります。

プロパティ textLabel は、Basic や Detailed などの Custom 以外のタイプのセルでのみ使用できます。

したがって、これらのスタイルが要件を満たしているかどうかを最初に確認し、代わりに使用する必要があります。

カスタムタイプのセルが本当に必要な場合は、UITableViewCell のサブクラスを作成し、ラベルにアクセスするためのアウトレットを作成する必要があります。

于 2012-08-17T18:58:57.743 に答える