0

アプリには 3 つの個別の「UIViewControllers」があります。それぞれに UITableView が添付されています。

  • 最初の UITableView は、データ行 (ニュース項目) の 1 つのテーブルのみを表示します。
  • 2 番目の UITableView は検索ビューを表示します。このビューには、ユーザーがさまざまな検索条件を入力するいくつかのセクションがあります。
  • 3 番目の UITableView は、記事の詳細を表示します。

各 UITableView には、ボタンがあります。

  • 最初の UITableView には「もっと記事を読み込む」ボタンがあります。
  • 2番目のUITableViewには「検索」ボタンがあります
  • 3 番目の UITableView には、「記事ページにアクセス」ボタンがあります。

3 つのビューはすべて UITable であるため、カスタム UITableCellView を作成し、各 UITableView に追加しました。2番目のUITableViewの「ButtonCell」の例を次に示します

ButtonCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ButtonCell"];
NSString *cellText = @"Search";
[[cell buttonLabel] setText:cellText];
return cell;

これはうまく機能します-まさに私が望む方法です。

ここで、1 番目と 3 番目の UITableView に同じ「ButtonCell」を追加しましたが、いくつか奇妙なことが起こりました。

  1. ButtonCell の背景色が正しくありません。ButtonCell の ".xib" ファイルで、青っぽい色に設定しました。これは 2 番目の UITableView ではうまく機能しますが、それ以外の場合は単に「白」です。

  2. ButtonCell の「角が丸い」ということはなくなりました。

UITableViews でカスタム ボタン セルを適切に「再利用」する方法についてのアイデアはありますか?

4

1 に答える 1

1

2 番目のテーブルがグループ化されているように聞こえますが、他の 2 つのテーブルはプレーンです (グループ化されたテーブル ビュー スタイルで角が丸くなっています)。プレーン テーブルの IB でカスタム セルの色を設定しても機能しません。tableView:willDisplayCell:forRowAtIndexPath: デリゲート メソッドでセルの色を設定する必要があります。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundColor = [UIColor colorWithRed:.67 green:.93 blue:1 alpha:1];
}
于 2013-02-09T06:02:31.620 に答える