2010-01-23 16 views
5

İçinde UILabel ve içinde UITextView bulunan bir UITableViewCell özel var.UITextView vurgulanmışTextColor veya benzeri seçenek?

Kullanıcı, UITableViewCell'u vurguladığında her ikisinin de metni beyaz görünmesini istiyorum. UILabel'un highlightedTextColor değerini ayarlamak çok basittir, ancak UITextView'un benzer bir özelliği yoktur. Hücre vurgulandığında/vurgulanmadığında veya bunu gerçekleştirmenin daha kolay bir yolu olduğunda, UITextView'un rengini elle değiştirmek zorunda mıyım?

Teşekkürler!

cevap

9

Buldu ve düşündüğümden çok daha kolaydı. Sadece UITableViewCellsetHighlighted yöntemini kullanmanız gerekir.

- (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

Seçilemez satırların metin rengini değiştirmesini önlemek için, şununla değiştirin: if (vurgulanan && (self.selectionStyle! = UITableViewCellSelectionStyleNone)) – capikaw

+0

Bu yalnızca ilk ve son satır için işlenmiş, nedenini anlatabilir misiniz? –

+0

düşüncemden çıktı – Esqarrouth

2

Yazarın gönderdiği çözüm benim durumumun yarısıdır. Aşağıdaki olaylar meydana akılda tutmak gerekiyor: aşağı

  1. basın -> setHighlighted: EVET animasyonlu: yukarı
  2. pres denir -> setHighlighted: HAYIR
  3. seti seçimi denir animasyon - > setSelected: animasyonlu :, setSelected: animasyonlu: ya iki yöntem EVET

Bunu bilen ve size setHighlighted uygulamak gerekiyorsa belirleyecektir seçildiğinde vs highighted zaman TableCell bakmak istiyorum nasıl bağlı denir animasyonlu .

İstediğim görünüm için her iki yöntemi de uygulamam gerekiyor.