私のアプリには、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
の背景色の設定が機能しない理由はありますか?
ありがとうございました
問題は、UIKitが-setSelectedメソッドでセルの背景色を設定することです。メソッドはありましたが、self.textLabel.backgroundColor = [UIColorclearColor]がありませんでした。 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と最小で開発した場合、テスト中に少し驚くべきことです。 iPhoneclassicおよびiPad用のデプロイメント3.1。
この投稿を参照してください: ITableViewCellSelectionStyleプロパティをカスタムカラーに設定するにはどうすればよいですか?
あなたの場合は、白い背景色のUIViewを使用してください
私はそれを試しませんでしたが、ここに推測があります...より速く描画するために、ラベルの不透明なプロパティがデフォルトでtrueに設定されている場合があります。
試してみてください
cell.titleLabel.opaque = NO;
cell.titleLabel.backgroundColor = [UIColor clearColor];
それでもうまくいかない場合は、おそらくこの時点で諦めて、セル用に独自のUILabelを作成します。
テキストラベルの色を設定するには、次のようにする必要があります。t.textColor= [UIColor colorYouWantRGB];
クリアな背景色を設定するには、clearColorを使用できます。
[[cell textLabel] setBackgroundColor:[UIColor clearColor]];
これはどういう意味ですか?