Zmiana koloru tła uitableviewcell textLabel na Wyczyść

W mojej aplikacji mam widok tabeli z customViewCells. Podklasowałem klasę UITableViewCell i dodałem obrazek, który będzie ładował się asynchronicznie, a dla tekstu używam cell.textLabel.text = @"someThext".

Dla komórek kolor tła jest ustawiany alternatywnie na [UIColor darkGrayColor] i [UIColor whiteColor].

Kiedy uruchamiam aplikację w symulatorze i na telefonie textLabel komórki ma białe tło. Chcę ustawić, aby było jasne, ponieważ chcę, aby kolor tła komórki był pełny, a nie Pasek potem biały, a następnie inny rozbieraj się.

W metodzie init mojej komórki dodałem, mając nadzieję, że białe zamieni się w czerwone, ale to nie ma żadnego efektu:

[self.textLabel setBackgroundColor:[UIColor redColor]];

Próbowałem też:

self.textLabel.backgroundColor = [UIColor redColor];
Ale to też nie zadziałało... jeśli dodam Etykietę UILabel jako subview, można ustawić kolor tła etykiety, ale nie chcę tego robić, ponieważ po obróceniu telefonu chcę, aby etykiety były automatycznie powiększane.

Jakieś pomysły, dlaczego ustawienie koloru tła cell.textLabel nie działa?

Dziękuję

Author: mihir mehta, 2009-07-22

7 answers

Jeśli nie chcesz podklasować UITableViewCell, możesz po prostu dodać to:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
     [[cell textLabel] setBackgroundColor:[UIColor clearColor]];
     [[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
}
 47
Author: plug-in,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-15 07:37:34

Problem polega na tym, że UIKit ustawia kolor tła komórki w metodzie-setSelected. Miałem metodę, ale nie miałem siebie.textLabel.backgroundColor = [uicolor clearColor]; self.detailTextLabel.backgroundColor =[ uicolor clearColor]; w nim więc dodałem je i problem wymieniony na zdjęciu został naprawiony.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    self.textLabel.backgroundColor = [UIColor clearColor];
    self.detailTextLabel.backgroundColor = [UIColor clearColor];
}
 23
Author: Sorin Antohi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-05 21:24:30

Wygląda na to, że Apple coś tu zmieniło. Robienie dokładnie tego w iOS4 działa:

self.textLabel.backgroundColor = [UIColor xxxColor];
self.detailTextLabel.backgroundColor = [UIColor xxxColor];

Przynajmniej do tego stopnia, że tło etykiety jest przezroczyste lub przyjmuje kolor tła. Nadal nie można ustawić własnego koloru tła.

Miło, że jest to naprawione, ale trochę zaskakujące podczas testów, jeśli rozwijasz się z BASE SDK 4.1 i min. wdrożenie 3.1 Dla iPhone classic i iPad.

 3
Author: Gerd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-05 21:07:09

Aby ustawić czysty kolor tła, możesz użyć clearColor:

    [[cell textLabel] setBackgroundColor:[UIColor clearColor]];
To masz na myśli?
 0
Author: Benji Barash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-22 10:53:41

Zobacz ten post: Jak ustawić właściwość UITableViewCellSelectionStyle na jakiś niestandardowy kolor?

W Twoim przypadku wystarczy użyć UIView z białym kolorem tła

 0
Author: Nir Levy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:01:23

Nie próbowałem, ale zgaduję... W celu szybszego rysowania właściwość nieprzezroczysta etykiety może być domyślnie ustawiona na true.

Try

cell.titleLabel.opaque = NO;
cell.titleLabel.backgroundColor = [UIColor clearColor];

Jeśli to też nie zadziała, prawdopodobnie poddałbym się w tym momencie i stworzyłem własny UILabel dla komórki.

 0
Author: Ron Srebro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-08 20:50:41

Aby ustawić kolor etykiety tekstowej należy to zrobić: t. textColor = [uicolor colorYouWantRGB];

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-13 16:11:32