2012-05-19 15 views
10

私はカスタムを持っていますUITableViewCell。それはカスタムテキストでそれの中に3つのカスタムラベルを持っています。カスタムテーブルビューセル選択フォントの色

セルをタップすると、それらのラベルのtextColorをすべて白にします。メールアプリUITableViewCellのように動作します。

これについては、カスタムセルクラスでこれを書きました。

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

    // Configure the view for the selected state 

    if (self.selected) { 
     _subjectLabel.textColor = [UIColor whiteColor]; 
     _messageLabel.textColor = [UIColor whiteColor]; 
     _usernameLabel.textColor = [UIColor whiteColor]; 
    }else { 
     _subjectLabel.textColor = [UIColor blackColor]; 
     _messageLabel.textColor = [UIColor grayColor]; 
     _usernameLabel.textColor = [UIColor blackColor]; 
    } 



} 

私はそれを入手できました。しかし、電子メールアプリのように滑らかではありません。わずかな遅延の後にのみ色が変わります。どちらの方法をUITableViewCell私はこのコードを配置するオーバーライドする必要があります。私は以下のオプションについては知っているが、カスタムセルのカスタムラベルに動作を与えません。

typedef enum { 
    UITableViewCellSelectionStyleNone, 
    UITableViewCellSelectionStyleBlue, 
    UITableViewCellSelectionStyleGray 
} UITableViewCellSelectionStyle; 

答えて

23

ラベルのhighlightedTextColorを設定します。これは自動的に自動的に行われます。 setSelectedで特別なことを行う必要はありません。

_subjectLabel.highlightedTextColor = [UIColor whiteColor]; 
+0

出来た! – Anand

+0

セルがカスタムセルであれば、xibを開き、Attributes Inspectorの下で "Highlighted"カラーを設定することができます。 –

1

我々はすぐに呼ばUITableView-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath方法の任意のセルを選択した場合、あなたはこれを使用することができます。

+0

' - (無効)にtableView:(のUITableView *)のtableView didSelectRowAtIndexPath:(NSIndexPath *)を使用すると、セルの外に指を取るだけで火をindexPath' ...ないあなたはそれを維持している..私はしたいですセル上に指を置いたときの瞬間を変える色。例えば、電子メールアプリを見てください。 – Anand

+0

その場合、touchBeganメソッドを使用することができます。指をセルに重ねるとすぐに呼び出されます。を使用して? – rishi

+0

現在、上記のコードが動作します。小さな遅延で – Anand

関連する問題