2016-08-25 2 views
1

У меня есть UItablview с пользовательской ячейкой мне нужно изменить ярлык цвета фона При выборе этой строки, но цвет этикетки повторяется при прокрутке внизбыстры этикеткам изменения на UITableViewCell цвета фона

enter image description here

+0

Не могли бы вы показать, как вы пытались? Потребуем некоторое время, чтобы прочитать это: [ask] –

+0

Вы повторно используете ячейку, это причина изменения цвета фона ярлыка, вам нужно показать код cellForRowAtIndexPath. –

+0

ячейка выбрана в пользовательском классе ячеек, поэтому она имеет цвет, когда я выбираю + - кнопку, как я могу использовать cellForRowAtIndexPath для обновления цвета –

ответ

2

Вы могли бы подкласс ваша ячейка как это (и cellForRow не будет нести ответственность за обновление цвета, только для установки цвета по умолчанию).

class YourTableViewCellClass: UITableViewCell { 

    @IBOutlet weak var yourLabel: UILabel! 

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

     self.contentView.backgroundColor = UIColor.red //or what you want as your cell bg color 
     self.yourLabel.backgroundColor = UIColor.green //or what you want 

    } else { 

     self.contentView.backgroundColor = UIColor.white //or what you want as your cell bg color 
     self.yourLabel.backgroundColor = UIColor.red //or what you want 
    } 
} } 
1

Что я понимаю, вы помещаете код в методе didSelectRow из Tableview, чтобы изменить цвет, но он показывает предыдущий цвет во время прокрутки.

Таким образом, вам необходимо установить условие в методе cellForRow, например.

if(condition) 
{ 
lbl.textcolor = x 
} 
else 
{ 
lbl.textcolor = y 
} 
Смежные вопросы