首页 > 解决方案 > 调整视图的大小使其他视图在 UITableViewCell 中反弹

问题描述

我需要展开或折叠表格视图单元格及其内容。
为此,我正在使用 NSLayoutConstraints。尽管它完成了工作,但我在单元格中的其他视图中遇到了一些令人讨厌的布局问题。
这是一个视频。
这是我的代码:

视图控制器:

extension ViewController: TableViewCellDelegate {
    func tableView(shouldExpand cell: TableViewCell) {
        tableView.performBatchUpdates({
            cell.expand()
        })
    }

    func tableView(shouldCollapse cell: TableViewCell) {
        tableView.performBatchUpdates({
            cell.collapse()
        })
    }
}

表视图单元:

func expand() {
    UIView.animate(withDuration: 0.57) {
        self.viewHeight.constant = 320
        self.view.alpha = 1
        self.layoutIfNeeded()
    }
}

func collapse() {
    UIView.animate(withDuration: 0.57) {
        self.viewHeight.constant = 0
        self.view.alpha = 0
        self.layoutIfNeeded()
    }
}

如何停止上视图停止调整大小?

标签: iosswiftuitableviewautolayout

解决方案


您可以使用 UIStackView 并仅显示和隐藏视图以进行折叠和展开。UIStackView 将很容易处理并且会为你工作。


推荐阅读