Swift 2 - 更新自动布局中的 UITableViewRow 以更改其在单元格中点击的按钮的高度
Swift 2 - Update UITableViewRow in auto layout to change its height on button tapped in cell
我正在使用自动调整单元格大小的方法在我的表格视图单元格中自动调整高度,因为我的描述文本是可变的(可以容纳 1 到 5 行)。它工作正常。
我还希望在描述的单元格文本内单击按钮时应该清除该按钮,并且行高应该降低。为此,我已经实现了以下委托来将描述文本更新为空,而不是调用我的表视图的委托来更新行。但不是调整大小和清空描述中的文本,文本只是返回描述。
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
将再次 运行,它可能会将您的描述设置为原始文本。
我正在使用自动调整单元格大小的方法在我的表格视图单元格中自动调整高度,因为我的描述文本是可变的(可以容纳 1 到 5 行)。它工作正常。
我还希望在描述的单元格文本内单击按钮时应该清除该按钮,并且行高应该降低。为此,我已经实现了以下委托来将描述文本更新为空,而不是调用我的表视图的委托来更新行。但不是调整大小和清空描述中的文本,文本只是返回描述。
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
将再次 运行,它可能会将您的描述设置为原始文本。