В моем приложении есть табличное представление. В этом я загружаю свои данные. Я хочу, чтобы, если загрузка данных в первую ячейку, ее высота должна быть 120, а оставшаяся ячейка должна иметь высоту 50. У меня также есть условие в делегате didSelect, что если пользователь выбирает ячейку, текущая высота ячейки увеличивается до 120, а оставшиеся ячейки имеют высоту 50 , Как я могу показать свою первую клетку высотой 120 и оставаясь с 50. Это мой код, когда табличное представление загружает данные.
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dishNameArray.count
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if (flag == true && indexPath.row == indexValue) {
return 120
}
else {
return 40
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = cartTableView.dequeueReusableCell(withIdentifier: "cartCell", for: indexPath) as! CartTVC
cell.dishNameLbl.text = dishNameArray[indexPath.row]
cell.eachPriceLbl.text = priceArray[indexPath.row]
cell.quantityLbl.text = "1"
cell.qtyLbl.text = "1"
cell.totalPriceLbl.text = priceArray[indexPath.row]
cell.deleteBtn.tag = indexPath.row
cell.deleteBtn.addTarget(self, action: #selector(crossBtnTapped), for: .touchUpInside)
cell.selectionStyle = .none
return cell
}
@objc func crossBtnTapped(sender: UIButton) {
dishNameArray.remove(at: sender.tag)
let indexPath = IndexPath.init(row: sender.tag, section: 0)
let cell = cartTableView.cellForRow(at: indexPath) as! CartTVC
print(cell)
cartTableView.reloadData()
print(sender.tag)
print("II:\(dishNameArray.count)")
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Yes")
indexValue = indexPath.row
if flag && indexValue == indexPath.row{
// rfpNumberTableView.beginUpdates()
let cell = self.cartTableView.cellForRow(at: indexPath) as! CartTVC
cell.bgView.backgroundColor = #colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1)
self.cartTableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.none)
// cartTableView.endUpdates()
flag = false
}
else{
let cell = self.cartTableView.cellForRow(at: indexPath) as! CartTVC
cell.bgView.backgroundColor = #colorLiteral(red: 0.9529120326, green: 0.3879342079, blue: 0.09117665142, alpha: 1)
// rfpNumberTableView.beginUpdates()
self.cartTableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.none)
// cartTableView.endUpdates()
flag = true
}
}
Вот как я хочу свою первую ячейку, когда табличное представление загружает данные,
![enter image description here](https://i.stack.imgur.com/2XMWx.png)