2011-10-17 18 views
6

neden UITableViewCell adlı kullanıcının renkleri willDisplayCell içinde çalışıyor, ancak cellForRowAtIndexPath içinde çalışmıyor? Ben koymak eğer yönteminde koyduğunuzda [cell setBackgroundColor:[UIColor yellowColor]]; neden bir UITableViewCell'in rengi "willDisplayCell" içinde çalışıyor, ancak "cellForRowAtIndexPath" içinde çalışmıyor?

  • eserler - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
  • işe ETMEZ:

    Notlar:

    1. Bir hücrenin arka plan rengini ayarlamak için bu kodu kullanıyorum - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  • +1

    “tableView: willDisplayCell: forRowAtIndexPath:” ve “tableView: cellForRowAtIndexPath:' uygulamalarınızı uygulayabilir misiniz? – titaniumdecoy

    cevap

    7

    yılında UITableViewCell için doco sen willDisplayCell bunu yapmak gerekir belirtiyor: (UITableViewCell sınıfı refere alıntı nce aşağıda). Tablo hücrelerinin UIKit tarafından 'yönetilmekte' gibi görünen bir içerik görünümü ve çeşitli diğer bileşenlere sahip olduğundan şüpheleniyorum çünkü cellForRowAtIndexPath öğesinde ayarlandıktan sonra arka plan rengiyle kendi yapısını yapıyor. Arka planını kontrol etmek için tablo görünümü hücresinin 'backgroundView' özelliğini de kullanabilirsiniz.

    dokümantasyon alıntı:

    Not: Eğer tableView bunu yapmak gerekir (UIView tarafından açıklanan backgroundColor mülkiyet yoluyla bir hücrenin arka plan rengini ayarlayarak) bir hücrenin arka plan rengini değiştirmek istiyorsanız: willDisplayCell: forRowAtIndexPath: tablo kaynağında değil, temsilci yöntemi: cellForRowAtIndexPath: veri kaynağının. Grup stili tablo görünümünde hücrelerin arka plan renklerindeki değişikliklerin, iOS 3.0'da işletim sisteminin önceki sürümlerinden farklı bir etkisi vardır. Artık, bunun dışındaki alan yerine yuvarlatılmış dikdörtgen içindeki alanı etkiler.

    İlgili konular