2009-06-17 21 views
3

セルにtextLabelが組み込まれておらず、代わりに独自の描画を行うカスタムUITableViewCellがある場合、自動的に行うようにcontentViewの外観をどのように変更できますか?デフォルトのテキスト(selectedTextColor:を設定してカスタマイズ可能)?UITableViewCellの選択色

tableView:willSelectRowAtIndexPath:を変更すると、青い選択の背景がアップした後にのみ更新されますが、アニメーション化している間は更新されません。

答えて

6

UITableViewCellをサブクラス化せず、デフォルトの動作を使用してください。 サブクラス化せずにセルを完全にカスタマイズすることができます。

詳細はthis articleをお読みください。

+0

これは実際私がやっていたことですが、あなたのリンクは正しい方向に私を指摘しました。 UILabelのhighlightedTextColorを変更する必要がありました。 –

+0

あなたが「自分の絵」について話したとき、私はすぐにサブクラス化を考えました。私の悪い。 解決策が見つかったらうれしい – Thomas

3

あなたがのUITableViewCellをサブクラス化している場合は、次をオーバーライドすることにより、セルの要素をカスタマイズできます。

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { 
    if(highlighted) { 
     self.backgroundColor = [UIColor redColor]; 
    } else { 
     self.backgroundColor = [UIColor clearColor]; 
    } 

    [super setHighlighted:highlighted animated:animated]; 
} 
5

は、あなたのテーブルビューのcellForRowAtIndexPathメソッドで、このコードを追加するだけのUITableViewCell選択スタイルに期待される色を変更。

//------------------------------------------------------------------------- 
    //background selected view 
    UIView *viwSelectedBackgroundView=[[UIView alloc]init]; 
    viwSelectedBackgroundView.backgroundColor=[UIColor colorWithRed:124.0/255.0 green:202.0/255.0 blue:227.0/255.0 alpha:1.0]; 
    cell.selectedBackgroundView=viwSelectedBackgroundView; 
    //------------------------------------------------------------------------- 
関連する問題