0

ストーリーボードとカスタム セルを使用しています。検索しようとしています。検索文字を入力するとすぐに、返されるセルは UITableViewCellStyleDefault であり、ラベルを設定することしかできません。カスタムセルを選択していない理由がわかりません。誰か助けてください。

これを繰り返して申し訳ありませんが、それがどのように機能するかわかりませんでした。

私はこのコードを使用しています。

    static NSString *CellIdentifier = @"memberCell";
    MemberCell *cell = (MemberCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];        
    NSDictionary *item = self.searchList[indexPath.row];

    if (cell == nil) {
      cell = [[MemberCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:CellIdentifier];        
     }

     cell.memberFullName.text = [item[@"full_name"] uppercaseString] ;
     cell.memberPosition.text =  [item[@"title"] length] < 1 ? [NSString stringWithFormat:@"%@",  item[@"districts"]] : [NSString stringWithFormat:@"%@, %@", item[@"title"], item[@"districts"]];
     cell.memberRoom.text = [NSString stringWithFormat:@"Rm %@", item[@"room_number"] ];
    [cell.memberImage setImageWithURL:[NSURL URLWithString:item[@"image_thumb"]]
                 placeholderImage:[UIImage imageNamed:@"placeholder"]];

ディーパック

4

1 に答える 1

1

あなたは「検索しようとしています」と言いました - を追加してUISearchDisplayController、カスタム セルをその結果テーブル ビューに表示しようとしているということですか? その場合、次の 2 つのオプションがあります。

  1. メソッドではtableView:cellForRowAtIndexPath:、検索結果テーブル ビューではなく、メイン テーブル ビューからカスタム セルをデキューする必要があります。ストーリーボードにあるテーブルビューでセルを定義すると、ストーリーボードはそれをそのテーブルビューに登録するだけなので、他のテーブルビューからデキューすることはできません (WWDC '13 でストーリーボードを担当する Apple エンジニアに確認しました)。したがって、コードは次のようになります。

    MemberCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];

  2. カスタム セル定義をスタンドアロンの xib ファイルに移動します (空の XIB を作成し、オブジェクト リストから UITableViewCell をドラッグして、必要に応じて構成します)。カスタム セル クラスを定義し、それを xib のセル クラスとして構成すると、そのセル タイプを手動で両方のテーブル ビューに登録できます。registerNib:forCellReuseIdentifier:

于 2013-07-11T16:52:22.743 に答える