2016-10-19 4 views
0

Я настраиваю ячейку tableview. Ячейка включала две кнопки (одна красная, другая - синяя). Но когда я выбираю ячейку, 2 кнопки меняют цвет фона на выделенный цвет ячейки. Я хочу, чтобы они сохраняли свой цвет, когда ячейка подсвечивается. Мое решение - захватить выделенный делегат tableview и изменить фон кнопок.UITableView все компоненты меняются цветом фона при выборе ячейки

Может ли кто-нибудь дать мне другое решение?

Благодаря

+0

Проверьте мой ответ на то, что вы задали в своем вопросе. – user3182143

ответ

1

Вы должны переопределить setHighlighted и setSelected внутри UITableViewCell подкласса

Objective C

-(void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated 
{ 
    UIColor *someViewColor = self.someView.backgroundColor; 
    [super setHighlighted:highlighted animated:animated]; 
    self.someView.backgroundColor = someViewColor; 
} 

-(void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    UIColor *someViewColor = self.someView.backgroundColor; 
    [super setSelected:selected animated:animated]; 
    self.someView.backgroundColor = someViewColor; 
} 

Swift

override func setHighlighted(highlighted: Bool, animated: Bool) { 

    let someViewColor = someView.backgroundColor   
    super.setHighlighted(highlighted, animated: animated) 
    someView.backgroundColor = someViewColor 
} 

override func setSelected(selected: Bool, animated: Bool) { 

    let someViewColor = someView.backgroundColor   
    super.setSelected(selected, animated: animated) 
    someView.backgroundColor = someViewColor 
} 
+0

Благодарим вас за быстрый ответ. Здорово. –

+0

Добро пожаловать! – Magoo

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