3

左と右のセルに情報を表示しようとすると問題が発生します。initWithStylewithを使用していることは承知していUITableViewCellStyleSubtitleます。私はこれを使用していますが、うまくいかないようです。

サンプルコードは次のとおりです。

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

    if (cell == nil)  {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:Cellidentifier];
    }

    Accounts *account = [self.fetchedResultsController objectAtIndexPath];
    cell.textLabel.text = account.name;

    cell.detailTextLabel.text = @"Price";

    return cell;
}

cell.textLabel.text は問題なく表示できますが、単純な「価格」を表示することはできません。のフォントサイズを設定するなど、さまざまなことを試しましたcell.detailTextLabel

UITableViewCellStyleValue1古い投稿でいくつかの人が提案したように、私も試しました。「価格」に設定した後に NSLog をスローすると、cell.detailTextLabel が null として表示されます。

私が間違っているのかわかりません。

編集:私はこれを見つけました: cell.detailTextLabel.text は NULL です

削除するif (cell == nil)と機能します...そのチェックは適切に行われているはずですが、さまざまなスタイルを使用するときにどのように機能させますか?

4

5 に答える 5

17

ストーリーボードとプロトタイプ セルを使用する場合、セルは常にdequeue メソッドから返されます (その識別子を持つプロトタイプが存在すると仮定します)。(cell == nil)これは、ブロックに入らないことを意味します。

あなたの場合、プロトタイプ セルはサブタイトル スタイルのストーリーボードで定義されていないため、サブタイトル付きセルは使用されず、詳細テキスト ラベルは存在しません。絵コンテのプロトタイプを字幕スタイルに変更します。

于 2012-05-08T14:05:11.760 に答える
2

これらの行のみを試して、これが機能するかどうかを確認したら、すべてのコードを削除してください。

 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
 {
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
          cell = [[[UITableViewCell alloc]
             initWithStyle:UITableViewCellStyleSubtitle
             reuseIdentifier:CellIdentifier]
            autorelease];
 }


   cell.textLabel.text=[Array objectAtIndex:indexPath.row];
   cell.detailTextLabel.text=@"Price";


   return cell;
 }
于 2012-05-08T09:29:56.120 に答える
1

問題があります。メソッド名では、UITableView変数の名前は。ltableViewではなく、tableViewです。に変更しtableViewます。

于 2012-05-08T13:30:43.977 に答える
0

cell.detailTextLable.textである必要がありますcell.detailTextLabel.text。ラベルの単純なスペルミスのように見えます。

于 2012-05-07T16:40:21.923 に答える