我有一个自定义按钮UITableViewCell
班级。它显示/隐藏视图(同一单元格的一部分)。这样做时单元格的高度应该改变。
这是按钮操作(在UITableViewCell
自定义类):
@IBAction func showHideCartView(sender: UIButton)
{
if sender.tag == 1
{
// Show cart view
self.buttonArrow.tag = 2
self.viewAddToCart.isHidden = false
self.constraint_Height_viewAddToCart.constant = 50
self.buttonArrow.setImage(UIImage(named: "arrowUp.png"), for: .normal)
}
else
{
// Hide cart view
self.buttonArrow.tag = 1
self.viewAddToCart.isHidden = true
self.constraint_Height_viewAddToCart.constant = 0
self.buttonArrow.setImage(UIImage(named: "arrowDown.png"), for: .normal)
}
self.setNeedsUpdateConstraints()
self.setNeedsLayout()
self.layoutIfNeeded()
}
单元格的高度保持不变。只有当我滚动 UITableView 并重新访问单元格时,它的高度才会更新。
将以下方法添加到viewController
与tableView
当单元格展开时刷新表格:
func refreshTableAfterCellExpansion() {
self.tableView.beginUpdates()
self.tableView.setNeedsDisplay()
self.tableView.endUpdates()
}
更新约束后调用该方法。如果按钮操纵单元格内的约束,您将需要通知viewController
有关更改,以便您可以调用该方法。要么使用委托模式(或直接传递tableView
对每个可扩展单元格的引用 - 只需记住将其存储为weak
变量),或使用发布通知NotificationCenter.default
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)