2010-01-23 14 views
5

我有一個自定義UITableViewCell其中UILabelUITextViewUITextView highlightedTextColor或類似的選項?

當用戶突出顯示UITableViewCell時,我希望它們的文本顯示爲白色。設置UILabelhighlightedTextColor顯然非常簡單,但UITextView似乎沒有任何類似的屬性。每當單元格突出顯示/不亮時,是否需要手動更改UITextView的顏色,還是有更簡單的方法來完成此操作?

謝謝!

回答

9

發現它,它比我想象的要容易得多。只需要使用UITableViewCellsetHighlighted方法。

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { 
    [super setHighlighted:highlighted animated:animated]; 

    if (highlighted) { 
     [self.myTextView setTextColor:[UIColor whiteColor]]; 
    } else { 
     [self.myTextView setTextColor:[UIColor blackColor]]; 
    } 

} 
+0

要防止不可選擇的行更改文本顏色,請修改爲:if(highlight &&(self.selectionStyle!= UITableViewCellSelectionStyleNone)) – capikaw 2013-08-29 17:37:00

+0

這隻適用於第一行和最後一行可以告訴我爲什麼? – 2013-10-16 08:50:58

+0

不贊成我認爲 – Esqarrouth 2014-02-07 10:27:55

2

作者發佈的解決方案是我的情況的一半。需要記住的是,以下事件:

  1. 按下 - > setHighlighted:YES動畫:被稱爲
  2. 按上 - > setHighlighted:NO動畫被稱爲
  3. 集選擇 - >的setSelected:YES動畫被稱爲

知道了這一點,並根據您要如何當highighted選擇當VS將決定是否需要實施setHighlighted的TableCell的看:動畫:,的setSelected:動畫:或這兩種方法。

爲了我想要的外觀,我需要實現這兩種方法。