Как настроить цвет фона стандартной метки в UITableViewCell?
-
03-07-2019 - |
Вопрос
Последние несколько часов я пытаюсь понять, как это сделать, но безуспешно.Есть несколько потенциальных решений для этого при поиске в Google, но, похоже, ничего не работает.
Я пытаюсь настроить цвет фона стандартной UILabel, которая находится в UITableViewCell (поскольку я уже настроил цвет фона самой ячейки), но, похоже, ничего из того, что я делаю, не работает.
Я создаю свою собственную UILabel для настройки цветов в -TableView:cellForRowAtIndexPath:
UILabel* label = [[[UILabel alloc] init] autorelease];
label.textColor = [UIColor blueColor];
label.backgroundColor = [UIColor redColor];
label.opaque = YES;
[cell.contentView addSubview:label];
cell.text = @"Sample text here";
Но это не работает, и результирующее табличное представление по-прежнему содержит множество ячеек с метками с черным текстом и белым фоном.
Есть какие-нибудь подсказки о том, что я здесь делаю не так?
Обновить:Если вместо этого я попытаюсь сделать следующее:
UILabel* label = [[[UILabel alloc] init] autorelease];
label.textColor = [UIColor blueColor];
label.backgroundColor = [UIColor redColor];
label.opaque = YES;
[cell.contentView addSubview:label];
label.text = @"Sample text here";
Я получаю кучу UITableViewCells без текста вообще.
Решение
Похоже, что вы присваиваете текст ячейке вместо метки.Вы, вероятно, хотите:
label.text = @"Sample text here";
Кроме того, вам нужно будет установить рамку метки в соответствии с вашими требованиями:
label.frame = CGRectMake(10,10, 80, 40);
или непосредственно в конструкторе:
label = [[UILabel alloc] initWithFrame:myFrame];
Другие советы
Я бы не стал делать это в коде.Я бы сделал это с помощью пользовательского XIB-файла, а затем загрузил бы его в ваш
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
делегировать функцию.Таким образом, вы можете создать XIB-файл в соответствии с вашими точными спецификациями и настроить его.
Удачи вам!
Вы уже задавали этот вопрос раньше и получали правильные ответы;