В моем приложении я нажимаю на строку, и она расширяет еще одну строку под ним.Я хочу создать случайный цвет, чтобы при нажатии на строку фон строки изменял этот цвет, а расширенная строка под ним - того же цвета.Как получить строки для генерации одного и того же случайного цвета?
Я создал функцию для генерации случайного цвета и вызываю ячейку функции для строки, когда для isOpened установлено значение true, и я вызываю ту же функцию дляклетка, которая расширена.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let dataIndex = indexPath.row - 1
guard let cell1 = tableView.dequeueReusableCell(withIdentifier: "cell1") else {return UITableViewCell()}
func generateRandomColor() -> UIColor {
let redValue = CGFloat(drand48())
let greenValue = CGFloat(drand48())
let blueValue = CGFloat(drand48())
let randomColor = UIColor(red: redValue, green: greenValue, blue: blueValue, alpha: 1.0)
return randomColor
}
if indexPath.row == 0 {
if tableViewData[indexPath.section].opened == false {
tableViewData[indexPath.section].opened = false
cell1.textLabel?.text = tableViewData[indexPath.section].title
cell1.textLabel?.numberOfLines = 0
cell1.textLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping
cell1.textLabel?.font = UIFont.systemFont(ofSize: 18)
cell1.backgroundColor = UIColor.clear
return cell1
}
else if tableViewData[indexPath.section].opened == true {
tableViewData[indexPath.section].opened = true
cell1.textLabel?.text = tableViewData[indexPath.section].title
cell1.textLabel?.numberOfLines = 0
cell1.textLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping
cell1.textLabel?.font = UIFont.boldSystemFont(ofSize: 25)
cell1.backgroundColor = generateRandomColor()
return cell1
}
return cell1
} else {
cell1.textLabel?.text = tableViewData[indexPath.section].sectionData[dataIndex]
cell1.textLabel?.numberOfLines = 0
cell1.textLabel?.lineBreakMode = NSLineBreakMode.byWordWrapping
cell1.textLabel?.font = UIFont.systemFont(ofSize: 18)
cell1.backgroundColor = generateRandomColor()
return cell1
}
}
Произвольный цвет генерируется, но расширенная строка генерирует новый цвет.