UITableViewCell изменение цвета текста выбранной строки

У меня есть табличное представление, и я хочу знать, как изменить цвет текста выбранной строки, скажем, Red? Я пробовал этот код:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell= [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:nil] autorelease]; cell.text = [localArray objectAtIndex:indexPath.row]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { cityName = [localArray objectAtIndex:indexPath.row]; UITableViewCell* theCell = [tableView cellForRowAtIndexPath:indexPath]; theCell.textColor = [UIColor redColor]; //theCell.textLabel.textColor = [UIColor redColor]; [tableView deselectRowAtIndexPath:indexPath animated:NO]; } 

(1) Когда я выбираю любую строку, тогда цвет текста изменяется на красный, но когда я выбираю другой, текст, выделенный ранее, остается красным. как я могу это решить?

(2) Когда я прокручиваю цвет текста таблицы на черный цвет, как это решить?

Благодаря..

4 Solutions collect form web for “UITableViewCell изменение цвета текста выбранной строки”

Сделайте это в tableView:cellForRowAtIndexPath: ::

 cell.textLabel.highlightedTextColor = [UIColor redColor]; 

(И не используйте cell.text = ... больше, он устарел почти 2 года. Используйте cell.textLabel.text = ... вместо этого.)


Как упоминал Рафаэль Оливейра в комментариях, если selectionStyle вашей ячейки равен UITableViewCellSelectionStyleNone это не сработает. Проверьте раскадровку, а также стиль выбора.

Если вы хотите изменить только цвет текста, без изменения цвета фона ячейки. вы можете использовать this.Write этот код в методе cellForRowAtIndexPath

 UIView *selectionColor = [[UIView alloc] init]; selectionColor.backgroundColor = [UIColor clearColor]; cell.selectedBackgroundView = selectionColor; cell.textLabel.highlightedTextColor = [UIColor redColor]; 

Если вы уже подклассифицируете UITableViewCell , проще / чище установить цвета в методе awakeFromNib (при условии, что вы создаете экземпляр из раскадровки или xib).

 @implementation MySubclassTableViewCell - (void)awakeFromNib { [super awakeFromNib]; self.selectedBackgroundView = [[UIView alloc] initWithFrame:self.frame]; self.selectedBackgroundView.backgroundColor = [UIColor colorWithRed:0.1 green:0.308 blue:0.173 alpha:0.6]; self.customLabel.highlightedTextColor = [UIColor whiteColor]; } @end 

У меня была такая же проблема, попробуйте это!

 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; for (id object in cell.superview.subviews) { if ([object isKindOfClass:[UITableViewCell class]]) { UITableViewCell *cellNotSelected = (UITableViewCell*)object; cellNotSelected.textLabel.textColor = [UIColor blackColor]; } } cell.textLabel.textColor = [UIColor redColor]; [tableView deselectRowAtIndexPath:indexPath animated:NO]; } 

Это может быть решением вашей (и моей) проблемы.

  • Передайте событие касания UICollectionView к его родительскому UITableViewCell
  • Какой метод метода вызывается после создания UITableView
  • NSFetchedResultsController fetchedObjects неверен после того, как изменения распространяются из контекста управляемого фонового объекта
  • Подкласс UITableViewCell
  • Настроить UITableView
  • UITableViewScrollPositionNone не просматривает вид таблицы
  • UITextField на UITableViewCell перестает отвечать на прикосновения - возможно, это вызвано прокруткой экрана
  • Управление памятью cellForRowAtIndexPath
  • Потяните вниз, чтобы показать вид
  • Как использовать NSPredicate с массивом содержит объект Contact
  • Удалить / переместить строку UITableView, прикрепленную к веб-службе
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.