2011-09-09 4 views
0

を設定:のiOS/iPhone - 私はこのコードを使用して、のUITableViewで選択した行の色を設定しようとしている任意の行の色

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
     cell.backgroundColor = [UIColor redColor]; 
    } 
} 

問題は、それが上の色を設定しています、ですすべての行さらに、特定の行を選択すると、その行が青色で強調表示されます。選択した行を赤で強調表示するにはどうすればよいですか?

+1

チェック 'indexPathそれが正しい行であることを確認するために.row'を使用します。 – Joe

答えて

1

私には最も簡単な方法は、UITableViewCellをサブクラス化し、setSelected:方法を上書きすることである(必要であれば、同じ他のすべてを残す)

古いプロジェクトからいくつかのサンプルコード:

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

    UIView *bg = [[UIView alloc] initWithFrame:self.frame]; 
    bg.backgroundColor = [UIColor colorWithRed:.916 green:.9648 blue:.9844 alpha:1.0]; 
    self.selectedBackgroundView = bg; 
    [bg release]; 
    // Configure the view for the selected state 
} 
+0

それはうまく見えますが、UITableViewControllerによってどのように呼び出されるのですか?また、データロードでのみ呼び出されますか? –

+0

偉大な - それは働いた。私の次の質問は、選択されていない行の色を設定する方法ですが、これは選択した行の色をカバーします。 –

関連する問題