我有一個UITableview,其中每個單元格都有一個按鈕。 我的問題是,如果我點擊第一行中的按鈕,單元格的高度增加,然後我單擊tableviewcell中的另一個按鈕已擴展單元格高度將減少和選定單元格高度將增加UITableview:單擊自定義按鈕時動態更改單元格高度
After嘗試此鏈接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.現在點擊第一行,我需要減少第二排的高度和擴大第一行
的高度任何人都可以幫助我嗎?
我想你似乎需要有兩個數組變量來存儲您的單元格的可擴展狀態和擴展索引的信息。所以你可以利用這些數組來跟蹤單元在你的optionAction函數或tableview委託函數中的狀態。 – woogii
@woogii謝謝你的回覆。 – Aravi