Я создаю приложение, которое использует цветные таблицы для просмотра разделов других ячеек по категориям. Я делаю это, окрашивая ячейки разными цветами, используя инструкции if else. Но по какой-то причине, когда я запускаю приложение, чем больше я просматриваю вверх и вниз по представлению таблицы, тем больше других ячеек случайно меняет цвет. Это код в моем пользовательском классе instrumentTableCell:Таблица View Ячейки, меняющие цвета при прокрутке Swift
@IBOutlet var nameLabel: UILabel?
@IBOutlet var descriptionLabel: UILabel?
@IBOutlet var thumbnailImage: UIImageView!
func configurateTheCell(recipie: Recipie) {
self.nameLabel?.text = recipie.name
self.descriptionLabel?.text = recipie.description
self.thumbnailImage?.image = UIImage(named: recipie.thumbnails)
if nameLabel!.text == "Instrument"
{
backgroundColor = UIColor.orangeColor()
nameLabel?.textColor = UIColor.blackColor()
}
else if nameLabel!.text == "Optional addon"
{
backgroundColor = UIColor.cyanColor()
}
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if nameLabel!.text == "Instrument"
{
return 20
}
else if nameLabel!.text == "Optional addon"
{
return 20
}
else
{
return 100
}
}
и это то, что приложение выглядит как при запуске:
VS., когда пользователь прокручиваются вокруг немного:
также, если кто-то знает, как, я хотел бы, чтобы цветные ячейки также были меньше, чтобы приложение выглядело лучше.
показать нам содержимое '' cellForRowAtIndexPath: метод – arturdev
Это потому, что Сель повторно используются. Чтобы после 'else if nameLabel! .text ==" Необязательный аддон "{backgroundColor = UIColor.cyanColor()}' do 'else {backgroundColor = UIColor.clearColor()}' (или whiteColor()) – Larme
@ Larme благодарит за то, что сработало ! – zach2161