2011-10-17 8 views
6

UITableViewCellの色をwillDisplayCellに設定しますが、cellForRowAtIndexPathに設定しないのはなぜですか?UITableViewCellの色を「willDisplayCell」では設定できますが、「cellForRowAtIndexPath」では設定できません。

注:

  1. 私は、セルの背景色を設定するには、このコードを使用しています:私は方法- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
  2. に入れたときに私が入れた場合[cell setBackgroundColor:[UIColor yellowColor]];
  3. 作品は動作しません。 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+1

'tableView:willDisplayCell:forRowAtIndexPath:'と 'tableView:cellForRowAtIndexPath:'の実装を投稿できますか? – titaniumdecoy

答えて

7

でのUITableViewCellのためのDOCOは、あなたがwillDisplayCellでそれを行う必要があると述べている:(UITableViewCellのクラスREFEREからの抜粋以下)。私は、表のセルには、UIKitによって管理されているように見えるコンテンツビューやその他のさまざまなコンポーネントがあるため、cellForRowAtIndexPathで設定した背景色を使って独自の処理を行うと考えられます。テーブルビューセルの 'backgroundView'プロパティを使用して背景を制御することもできます。

文書の抜粋:

注:(UIViewのが宣言したbackgroundColorプロパティを経由してセルの背景色を設定することで)、セルの背景色を変更したい場合は、のtableViewでそれを行う必要があります。 willDisplayCell:forRowAtIndexPath:デリゲートのメソッドであり、データソースのtableView:cellForRowAtIndexPath:ではありません。グループスタイルのテーブルビューでセルの背景色を変更すると、以前のバージョンのオペレーティングシステムとは異なるiOS 3.0で効果があります。これは、外側の領域ではなく、丸い四角形の内側の領域に影響を与えるようになりました。

関連する問題