2015-05-26 2 views
4

У меня есть обычай UITableViewCell, с UILabel и UIImageView. Я хочу изменить цвет фона и цвет текста, когда ячейка подсвечена. В моем CustomCell «setHighlighted метода s, у меня есть следующий фрагмент кода:Изменить UILabel textColor, когда UITableViewCell выделен?

-(void)setHighlighted:(BOOL)highlighted { 
    [super setHighlighted:highlighted]; 
    if(self) { 
     if(highlighted) { 
      self.title.textColor = [UIColor whiteColor]; 
     } else { 
      self.title.textColor = [UIColor blackColor]; 
     } 
     //highlight background 
     UIView *bgColorView = [[UIView alloc] initWithFrame:self.frame]; 
     bgColorView.backgroundColor = [UIColor blackColor]; 
     [self setSelectedBackgroundView:bgColorView]; 
    } 
} 

я уже пытался поставить код для textColor изменений в tableView» s didSelectRowAtIndexPath, но это не тот эффект, что я хочу - хотите, чтобы цвет текста изменялся, когда пользователь прикасается к ячейке - не прикоснуться. Любые предложения?

ответ

11

Вы должны использовать атрибут highlightedTextColor. Установите цвет для ячейки внутри tableView:cellForRowAtIndexPath и он должен выглядеть следующим образом:

cell.textLabel.highlightedTextColor = [UIColor blueColor]; 
+1

Да, это сработало именно так. Благодарю. – nightfixed

+0

Рад, что я могу помочь! :-) –

0

Если у вас есть пользовательские этикетки, то используйте следующий код

lblPrd.highlightedTextColor = [UIColor whiteColor]; 
1

попробовать этот

[cell.textLabel setHighlightedTextColor:[UIColor yellowColor]] 
0

метод переопределения

(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { 
    [super setHighlighted:highlighted animated:animated]; 
    //TODO set view highlighted color 
} 

в пользовательских tableviewcell

0

Если у вас есть раскадровка или XIB, вы можете просто установить ее на Attributes Inspector > Label > Highlighted.

Смежные вопросы