1. ホーム
  2. ios

[解決済み] iOS7でUITableViewCellが白背景で表示され、修正できない。

2022-04-14 22:15:51

質問

を継承したカスタムテーブルビューセルクラスを実装しています。 UITableViewCell . テーブルビューは背景画像を含んでいるので、セルの背景を透明にしたい。iOS7以前はきれいに表示されていました。

しかし、iOS7では、セルは常に白い背景で表示されます。


Xcode7,2015でも、そこそこ は、ストーリーボードにバグがあります : セルの背景色をコードで設定する必要があります。

解決方法は?

Apple DOCが言っているように( UITableViewCellクラスリファレンス ):

... iOS 7では、セルの背景はデフォルトで白になります。 iOS の以前のバージョンでは、セルは囲んでいるテーブルビューの背景色を引き継ぎます。セルの背景色を変更したい場合は、テーブルビューの中の tableView:willDisplayCell:forRowAtIndexPath: メソッドで指定したテーブルビューデリゲートを使用します。

つまり、背景が透明のセルを表示する場合は、テーブルビューコントローラに以下のようなデリゲートメソッドを実装するだけでよいのです。

- (void)tableView:(UITableView *)tableView
  willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath
{
  [cell setBackgroundColor:[UIColor clearColor]];
}


ジャストノート : @nullさんのおっしゃるとおりです。 インターフェイスビルダーにバグがあるようです...。 というのも、彼のコメントには何票も投票されているからです。ということで、IBを使うなら何か問題があるかもしれません:)