我有一个UITableview,其中每个单元格都有一个按钮 . 我的问题是,如果我点击第一行中的按钮,单元格的高度增加,然后我单击tableviewcell中的另一个按钮已经扩展的单元格高度将减少,选定的单元格高度将增加
尝试此链接后UITableView: How to change cell height dynamically when a button is clicked in it? Swift
这是我的代码:
var indexOfExpendedCell:NSInteger = -1
var shouldCellBeExpanded:Bool = false
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
cell.optionButton?.addTarget(self, action: #selector(ViewController.optionAction), forControlEvents: UIControlEvents.TouchUpInside)
return cell
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if shouldCellBeExpanded && indexPath.row == indexOfExpendedCell {
return 102
}
else { return 57 }
}
}
func optionAction(sender: UIButton){
if let button = sender as? UIButton {
shouldCellBeExpanded = !shouldCellBeExpanded
indexOfExpendedCell = sender.tag
if shouldCellBeExpanded {
self.tableView.beginUpdates()
self.tableView.endUpdates()
button.setImage(UIImage(named: "Reject Icon filled"), forState: .Normal)
}
else {
self.tableView.beginUpdates()
self.tableView.endUpdates()
button.setImage(UIImage(named: "Reject Icon"), forState: .Normal)
}
}
}
尝试此代码后,单击同一行中的按钮时,单元格高度会扩大和缩小 . 我没有做好以下步骤
步骤:1 . 单击第二行单元格的高度展开2.现在单击第一行我需要减少第二行的高度并展开第一行的高度
谁能帮我?
1 回答
创建一个数组以保存应扩展的单元格 . 按下按钮时,相应地向元素添加或删除元素 . 这是代码: