Мне нужно изменить цвет фона в расширяемой ячейке просмотра таблицы, когда он выбран. То, что я сделал, я разместил три ячейки UIV в ячейке. Когда будет выбран первый вид в ячейке, остальные два вида будут расширены. Это работает. Теперь, когда ячейка выбрана, мне нужно изменить цвет первого представления. Используется следующий код, он изменяет цвет третьего вида в ячейке. Но я хочу, чтобы первое представление изменилось и осталось оранжевым, пока не будет выбрана другая ячейка. Может ли кто-нибудь помочь?Как изменить цвет фона выбранной расширяемой ячейки вида таблицы
import UIKit
import CoreData
class NewTableViewController: UIViewController,UITableViewDataSource,UITableViewDelegate{
let viewObj = CustomCellTableViewCell()
let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
@IBOutlet weak var tableView: UITableView!
var selectedIndex = -1
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return totalCustomer().0
}
func tableView(_ tableView: UITableView,heightForRowAt indexPath: IndexPath) ->CGFloat
{
if(selectedIndex == indexPath.row) {
return 160;
}
else {
return 40;
}
}
func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) ->UITableViewCell{
print("entered")
let cellIdentifier = "Cell"
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as! CustomCellTableViewCell
let row = indexPath.row
var nameArray = [String]()
nameArray = totalCustomer().1
cell.firstViewLabel.text = nameArray[row]
var emailArray = [String]()
emailArray = totalCustomer().2
cell.secondViewLabel.text = emailArray[row]
return cell
}
func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
cell?.contentView.backgroundColor = UIColor.orange
cell?.backgroundColor = UIColor.orange
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
if(selectedIndex == indexPath.row) {
selectedIndex = -1
} else {
selectedIndex = indexPath.row
}
self.tableView.beginUpdates()
self.tableView.reloadRows(at: [indexPath as IndexPath], with: UITableViewRowAnimation.automatic)
self.tableView.endUpdates()
}
func totalCustomer()->(Int,[String],[String])
{
let request: NSFetchRequest<Customers> = Customers.fetchRequest()
var customerList = [String]()
var customerEmailList = [String]()
var customerCount = 0
do {
let results = try managedObjectContext.fetch(request as! NSFetchRequest<NSFetchRequestResult>)
print(results.count)
if results.count > 0
{
for _ in 0..<results.count
{
let match = results[customerCount] as! NSManagedObject
print(match.value(forKey: "name") as! String)
customerList.append(match.value(forKey: "name") as! String)
customerEmailList.append(match.value(forKey: "email") as! String)
customerCount = customerCount + 1
}
}
else
{
//statusLabel.isHidden = false
}
}
catch let error
{
print("Label\(error.localizedDescription)")
}
print(customerCount)
return (customerCount,customerList,customerEmailList)
}
}
import UIKit
class CustomCellTableViewCell: UITableViewCell {
@IBOutlet weak var firstView: UIView!
@IBOutlet weak var firstViewLabel: UILabel!
@IBOutlet weak var secondView: UIView!
@IBOutlet weak var secondViewLabel: UILabel!
@IBOutlet weak var thirdView: UIView!
@IBOutlet weak var thirdViewLabel: UILabel!
@IBOutlet weak var secondHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var thirdHeightConstraint: NSLayoutConstraint!
override func awakeFromNib() {
super.awakeFromNib()
secondView.layer.borderWidth = 0.1
secondView.layer.borderColor = UIColor.black.cgColor
thirdView.layer.borderWidth = 0.1
thirdView.layer.borderColor = UIColor.black.cgColor
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
var showsDetails = false {
didSet {
secondHeightConstraint.priority = showsDetails ? 250 : 999
thirdHeightConstraint.priority = showsDetails ? 250 : 999
}
}
}
Пожалуйста, проверьте мой ответ и дайте мне знать, если это то, что вы ищете. – KrishnaCA
приветствуется :) – KrishnaCA
Пожалуйста, уточните мой отредактированный ответ – KrishnaCA