2009-07-22 11 views
23

私のアプリでは、私はcustomViewCellsでテーブルビューを持っています。私はUITableViewCellクラスをサブクラス化し、非同期をロードする画像を追加しました。テキストはcell.textLabel.text = @"someThext"です。クリアするUITableViewCellのtextLabelの背景色を変更する

セルの場合、背景色は[UIColor darkGrayColor][UIColor whiteColor]に交互に設定されます。

私はシミュレータと電話でアプリを実行すると、セルのtextLabelは背景が白です。私は、セルの背景色が白ではなく、白で、もう一の黒でなければならないので、それを明確にしたいと思います。私のカスタムセルのinitメソッドで

私は白が赤に変わりますことを期待して、追加しましたが、それは何の効果もありません。

[self.textLabel setBackgroundColor:[UIColor redColor]]; 

私も試してみました:

self.textLabel.backgroundColor = [UIColor redColor]; 

しかし、これもうまくいきませんでした... UILabelをサブビューとして追加すると、ラベルの背景色を設定できますが、電話を回転させると自分のラベルを自動拡大。

cell.textLabelの背景色を設定する理由はありませんか?

は、あなたがclearColorを使用することができます明確な背景色を設定するには、あなたに

答えて

23

問題は、UIKitが-setSelectedメソッドでセルの背景色を設定することです。私はこのメソッドを持っていたが、self.textLabel.backgroundColor = [UIColor clearColor];を持たなかった。 self.detailTextLabel.backgroundColor = [UIColor clearColor];それで私はそれらを追加し、画像に記載されている問題は修正されました。

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 
    [super setSelected:selected animated:animated]; 
    self.textLabel.backgroundColor = [UIColor clearColor]; 
    self.detailTextLabel.backgroundColor = [UIColor clearColor]; 
} 
0

ありがとう:

[[cell textLabel] setBackgroundColor:[UIColor clearColor]]; 

はあなたが何を意味するか、このですか?

+0

私は既にそれをテストし、うまくいきません... ここに私の問題のスクリーンショットのリンクです。http://img269.imageshack.us/img269/9001/picture1wim.png。 ラベルは私が作ったものではなく、UITableCellによって提供されたものです。 setBackgroundColorがうまくいかない理由は何ですか? –

+2

私はそこに[UIColor redColor]を入れてプロパティが設定されているかどうかを確認しますが、無視されますが、それは白のままです... –

0

この記事を参照してください。あなたのケースでHow do I set UITableViewCellSelectionStyle property to some custom color?

をちょうど白の背景色

+0

私の問題を理解できなかったと思います...問題はセルの背景色ではありません..私はそれが私が望むものに設定することができます..私の問題は、私はセルのtextLabelの背景色を設定することはできません。私が[[cell textLabel] setBackgroundColor:[UIColor redColor]];そのラベルの背景は白色のままです。あなたが以前に言及した投稿は、それを選択するときにセルの背景色を変更することを指しています。デフォルトの青が必要です。 –

+0

UILabelをサブビューとして追加すると、背景色は無視されません。組み込みのtextLabelとdetailTextLabelの背景色に設定したプロパティは無視されます... –

+0

SorinAでは、「willDisplayCell」を除くすべてのUITableViewDataSourceプロトコルメソッドでtextLabelとdetailTextLabelの背景色を変更することはできません。方法。私の以前の投稿を参照してください、そこに解決策を見つけることができますhttp://stackoverflow.com/questions/1164459/changing-uitableviewcell-textlabel-background-color-to-clear/2643451#2643451 –

0

でのUIViewを使用して、私はそれを試してみたが、ここでの推測だしませんでした...速いの不透明な性質を引き出すためにデフォルトではラベルはtrueに設定されている可能性があります。それはどちらか動作しない場合は

は、私はおそらくこの時点であきらめ、セルのために私自身のUILabelを作成します

cell.titleLabel.opaque = NO; 
cell.titleLabel.backgroundColor = [UIColor clearColor]; 

を試してみてください。

+1

OS 3.0では、 titleLabelに応答します。私はあなたがcell.textLabelで言ったことを試みましたが、効果は同じです。ありがとうございます。 –

0

テキストラベルの色を設定するには、これを行う必要があります。 t.textColor = [UIColor colorYouWantRGB];

+0

こんにちはAmelie、セルのタイトルラベルの背景色を設定して、ラベルのテキストの色を設定しないようにします。 –

47

あなたがのUITableViewCellのサブクラスを作成したくない場合はこれを追加することができます:Appleはここで何かを変えたよう

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

ありがとう、私は3.xの携帯電話で動作するようにしようと夢中になっていた! – jv42

3

が見えます。iOS4でこれを正確に実行すると、次のように動作します。少なくとも、ラベルの背景が透明であるか、背景色をとるまでです。まだ独自の背景色を設定することはできません。

これは修正されていますが、基本SDK 4.1および分で開発した場合は、テスト中に少し驚きました。 iPhone classicとiPad用のデプロイメント3.1。

関連する問題