Swift 2 - 更新自动布局中的 UITableViewRow 以更改其在单元格中点击的按钮的高度

Swift 2 - Update UITableViewRow in auto layout to change its height on button tapped in cell

我正在使用自动调整单元格大小的方法在我的表格视图单元格中自动调整高度,因为我的描述文本是可变的(可以容纳 1 到 5 行)。它工作正常。

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

protocol UpdateRowDelegate{
     func updateRow(cell:UITableViewCell)

}

Update row delegate implemented in table View controller

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

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

我是新手 swift

当您执行 self.tableView.reloadRowsAtIndexPaths 时,cellForRowAtIndexPath 将再次 运行,它可能会将您的描述设置为原始文本。