9

私には習慣があります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;
4

2 に答える 2

22

ラベルの HighlightTextColor を設定すると、これはすべて自動的に行われます。setSelectedで特別なことをする必要はまったくありません。

例えば

_subjectLabel.highlightedTextColor = [UIColor whiteColor];
于 2012-05-21T03:50:52.143 に答える
1

すぐに呼び出されるメソッドのセルを選択するUITableView-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath、これを使用できます。

于 2012-05-19T07:00:57.733 に答える