明らかにUITableViewCellのtextLabelの背景色を変更します
-
18-09-2019 - |
質問
私のアプリでは、私はcustomViewCellsとテーブルビューを持っています。私は、UITableViewCellのクラスをサブクラス化し、非同期ロードするイメージを追加し、テキストのために私はcell.textLabel.text = @"someThext"
を使用します。
セルの背景色は[UIColor darkGrayColor]
と[UIColor whiteColor]
する代わりに設定されている。
textLabel
シミュレータでと電話でアプリを実行すると、白い背景を持っています。私はその後、白ではないストリップいっぱいにするために、セルの背景色をしたいので、私は、それが明確になるように設定したいし、別のストリップます。
私のカスタムセルのinitメソッドでは、私は白が赤に変わりますことを期待して、追加しましたが、それは何の効果もありません。
[self.textLabel setBackgroundColor:[UIColor redColor]];
私も試みます:
self.textLabel.backgroundColor = [UIColor redColor];
しかし、これもうまくいきませんでした...私はサブビューとしてUILabelを追加した場合、私は携帯電話を回転させたときに、私は私のしたいので、ラベルの背景色を設定することができますが、私はそれを行うにはしたくありません自動拡大ラベルます。
任意のアイデアなぜcell.textLabel
の背景色を設定することはできません?
ありがとうございます。
解決 2
の問題は、の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];
}
他のヒント
あなたはちょうどこれを追加することができますUITableViewCellのサブクラス化したくない場合:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
[[cell textLabel] setBackgroundColor:[UIColor clearColor]];
[[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
}
Appleはここで何かが変わったように見えます。 iOS4を正確にこれを行うと、動作します。
self.textLabel.backgroundColor = [UIColor xxxColor];
self.detailTextLabel.backgroundColor = [UIColor xxxColor];
少なくとも、ラベルの背景が透明であるか、背景色を取る点まで。まだ、可能性は、独自の背景色を設定します。
あなたは、ベースSDK 4.1と分で開発する場合、これはテスト中に固定されているが、少し意外なことに、ニース。 iPhone古典とiPadの展開3.1。
あなたはclearColorを使用することができます明確な背景色を設定するには:
[[cell textLabel] setBackgroundColor:[UIColor clearColor]];
これはあなたが何を意味するかですか?
この記事を参照してください。私はUITableViewCellSelectionStyleを設定するにはどうすればよいですいくつかのカスタムカラーへのプロパティですか
あなたのケースでちょうど白い背景色でのUIViewを使用する
私はそれを試してみたが、ここでの推測だしませんでした...速いラベルの不透明な性質を描くためにはデフォルトでtrueに設定されることがあります。
試してみてください。
cell.titleLabel.opaque = NO;
cell.titleLabel.backgroundColor = [UIColor clearColor];
それはどちらか動作しない場合は、私はおそらくこの時点であきらめ、セルのための私自身のUILabelを作成することになります。
あなたがこれを行う必要がありtextlabelの色を設定するには: t.textColor = [UIColor colorYouWantRGB];