0

UITableViewCellにカスタムコントロールを追加すると(ストーリーボードのテーブルセルにUILabelをドラッグして)、実行時にコンテンツが表示されなくなります。テーブルの行を(選択するために)タップすると、コンテンツは表示されますが、白です。

プロジェクトのセットアップ:(概要:UITableViewとコンテンツを作成するための数行のコードを使用して超最小のストーリーボードプロジェクトを作成します):

新しいプロジェクト、シングルビューアプリケーション、Xcode 4.5.2は、ストーリーボードを使用します。これにより、iOS6を対象としたプロジェクトが作成されます。

テーブルビューコントローラをストーリーボードにドラッグします。ストーリーボードは、ビュー、ビューに含まれるUITableView、およびそのテーブル内のデフォルトのUITableViewCellを作成します。

テーブルビューコントローラを初期シーンとして設定します。

UITableViewCellの再利用識別子文字列を設定します(ストーリーボードエディターで)。

UITableViewのサブクラスである新しいファイルを作成し、最小限の在庫データを入力して、「XX行目」のデータテキストを入力する行をいくつか取得します。

プロジェクトを実行します。データは期待どおりに表示され、「行0」、「行1」などのデータが数行表示されます。問題はありません

次に、ストーリーボードのテーブルセルにラベルをドラッグします。プロパティについては何も変更しません。ラベルのテキストは、黒い文字で「ラベル」とだけ言っています。

次の画像を参照してください:http://www.codexlumen.com/issue/storyboard.png

プロジェクトを再度実行します。

私が期待すること:テーブルの行の行に「ラベル」が黒いテキストで表示されるようになりました。

私が実際に見ているもの:以前とまったく同じです。「ラベル」のテキストはまったく表示されません。

さて、ここに楽しい部分があります:

まだ実行中ですが、テーブルの行をタップして選択します。これで、行が青で強調表示され、ラベルコントロールを配置した位置に「ラベル」が白で表示されます。

次の画像を参照してください:http://www.codexlumen.com/issue/hilight.png

つまり、UILabelはそこにあり、強調表示されていない行に描画されていないだけです...

理由がわからない。

他のいくつかのコメント:

  • 私はどんな種類のカスタムテーブルセルサブクラスも使用していません。
  • プロジェクトに何も追加したり、上記以外の手順を実行したりしませんでした。
  • 再利用識別子文字列を設定し、UILabelをセルにドラッグすることを除いて、ストーリーボードのUITableViewまたはUITableViewCellオブジェクトのプロパティを変更しませんでした
  • 4sとシミュレーター(シミュレーターをさまざまなデバイス/ OS構成に設定)の両方で実行してみました
  • ラベルのプロパティ(黒の背景、緑のテキストなど)を変更してみました。無効。設定したプロパティに関係なく、視覚的な動作は同じです(ただし、テキストを拡大すると「ラベル」が大きくなります)

これは100%ストーリーボードです。コードでUIオブジェクトを作成していません。コード内のUIへの唯一の参照は、以下に示すように、テーブルセルに入力するコードです。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"MyCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    cell.textLabel.text = [NSString stringWithFormat:@"Line %i", indexPath.row];

    return cell;
}
4

1 に答える 1

2

私はあなたの問題を見ます。カスタムセルを使用しているときに、標準UITableViewCell(つまり)のプロパティにアクセスします。cell.textLabel違いを確認するには、3行目を殺すだけです。標準のラベルを使用せずに、必要なラベルごとに独自のアウトレットを作成することをお勧めします。

于 2013-01-17T07:10:12.693 に答える