0

UITableViewCell を拡張して、IOS アプリでテーブルのスタイルを設定しようとするカスタム クラスをセットアップしました。次のコードがあります。

 - (void)setSelected:(BOOL)selected animated:(BOOL)animated
   {
   [super setSelected:selected animated:animated];

if(selected){
    [self setBackgroundColor:[UIColor colorWithRed:(255/255.0) green:(128/255.0) blue:(37/255.0) alpha:0.5]];

     self.textLabel.textColor = [UIColor whiteColor];

    }
    else{
    [self setBackgroundColor:[UIColor clearColor]];

    self.textLabel.textColor = [UIColor colorWithRed:(142/255.0) green:(141/255.0) blue:(139/255.0) alpha:1];

     }
    }

選択した背景色を、アプリ全体で使用されるオレンジ色の不透明バージョンにしたいのですが、コードの結果は次のようになります。

ここに画像の説明を入力

中央のセルが同色の濃色バージョンに!? 誰か説明してくれませんか。

また、追加のクエリとして、セルの選択されていないバージョンの背景全体に不透明な白の色合いを適用することは可能ですか?

ファローアップ -

Maros のアドバイスに従って、styledcell.M ファイルに以下を追加しました -

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{

    [super setSelected:selected animated:animated];

self.selectionStyle = UITableViewCellSelectionStyleNone;

しかし、私はまだ同じ問題を抱えています

4

2 に答える 2

0

最終的に機能しました-何らかの理由で、テキストラベルが同じ背景色を継承していたため、2つの不透明な色が重なり合って上記の効果が得られました-

私は - 経由で削除しました

 self.textLabel.textColor = [UIColor whiteColor];

この SO バグに関するコメントに気づいた -
UITableViewCell Background Color is a different shade at left and right edge of cell

于 2013-10-25T16:00:47.807 に答える