Вопрос

В моем приложении у меня есть табличное представление с помощью customViewCells.Я выделил подкласс класса UITableViewCell и добавил изображение, которое будет загружаться асинхронно и для текста, который я использую cell.textLabel.text = @"someThext".

Для ячеек цвет фона устанавливается в качестве альтернативы [UIColor darkGrayColor] и [UIColor whiteColor].

Когда я запускаю приложение в симуляторе и на телефоне, textLabel часть ячейки имеет белый фон.Я хочу сделать его четким, потому что я хочу, чтобы цвет фона ячейки был полным, а не полоской, затем белой, затем еще одной полосой.

В методе init моей пользовательской ячейки я добавил, надеясь, что белый цвет превратится в красный, но это не имеет никакого эффекта:

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

Я тоже пытался:

self.textLabel.backgroundColor = [UIColor redColor];

Но это тоже не сработало...если я добавлю UILabel в качестве вложенного представления, цвет фона метки можно задать, но я не хочу этого делать, потому что при повороте телефона я хочу, чтобы мои метки автоматически увеличивались.

Есть идеи, зачем устанавливать цвет фона для cell.textLabel не работает?

Спасибо

Это было полезно?

Решение 2

Проблема в том, что UIKit устанавливает цвет фона ячейки в методе -setSelected .У меня был метод, но не было self.textLabel.backgroundColor = [UIColor clearColor];self.detailTextLabel.backgroundColor = [UIColor Чистый цвет];таким образом, я добавил их, и проблема, упомянутая на картинке, была исправлена.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    self.textLabel.backgroundColor = [UIColor clearColor];
    self.detailTextLabel.backgroundColor = [UIColor clearColor];
}

Другие советы

Если вы не хотите создавать подкласс UITableViewCell, вы можете просто добавить это:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
     [[cell textLabel] setBackgroundColor:[UIColor clearColor]];
     [[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
}

Похоже, Apple что-то здесь изменила.Выполнение именно этого в iOS4 работает:

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

По крайней мере, до того момента, пока фон метки не станет прозрачным или не примет цвет фона.По-прежнему невозможно установить собственный цвет фона.

Приятно, что это исправлено, но немного удивительно во время тестов, если вы разрабатываете с базовым SDK 4.1 и min.развертывание 3.1 для iPhone classic и iPad.

Чтобы установить четкий цвет фона, вы можете использовать clearColor:

    [[cell textLabel] setBackgroundColor:[UIColor clearColor]];

Это то, что ты имеешь в виду?

смотрите этот пост: Как мне присвоить свойству UITableViewCellSelectionStyle некоторый пользовательский цвет?

в вашем случае просто используйте UIView с белым цветом фона

Я не пробовал, но вот предположение...Чтобы быстрее рисовать, свойству непрозрачности метки по умолчанию может быть присвоено значение true.

Попробуй

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

Если это тоже не сработает, я бы, вероятно, просто сдался на этом этапе и создал свою собственную UILabel для ячейки.

чтобы установить цвет текстовой метки, вы должны сделать это:t.textColor = [UIColor цветыYouWantRGB];

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top