2015-10-27 1 views
1

Я использую метод определения размера ячейки для автоматической высоты в моей ячейке tableview, так как текст описания является переменным (может входить от 1 до 5 строк). Он работает нормально.Swift 2 - обновить UITableViewRow в автоматическом макете, чтобы изменить его высоту на кнопке, нажатой в ячейке

Self Sizing Cell iOS 8

Я также хочу, чтобы на кнопке нажмите внутри текста ячейки описания должны быть очищены и высота строки должна уменьшаться. Для этого я внедрил следующий делегат, чтобы обновить текст описания до пустого и вызвать делегата в моем представлении таблицы, чтобы обновить строку. но вместо изменения размера и опустошения текста в описании текст просто возвращается к описанию.

var delegate:UpdateRowDelegate? 
@IBAction func btnTestTapped(sender: AnyObject) { 
    self.descriptionLabel.text = "-"//!self.addressLabel.hidden 

    if delegate != nil { 
      delegate!.updateRow(self) 
    } 
} 

Протокол

protocol UpdateRowDelegate{ 
    func updateRow(cell:UITableViewCell) 

}

Обновление строки делегат реализован в таблице View Controller

func updateRow(cell: UITableViewCell) { 
    let indexPath = tableView.indexPathForCell(cell) 

    self.tableView.beginUpdates() 
    self.tableView.reloadRowsAtIndexPaths([indexPath!], withRowAnimation: UITableViewRowAnimation.Fade) 
    self.tableView.endUpdates() 
} 

Я новичок в быстрой

+0

Можете ли вы разместить свой cellForRowAtIndexPath? – Moriya

ответ

1

Когда вы self.tableView.reloadRowsAtIndexPathscellForRowAtIndexPath будет работать снова, и это, вероятно, установить описание к оригинальному тексту.

Смежные вопросы