swift - 具有调整单元格动画大小的动态单元格大小

标签 swift uitableview swift3 uiviewanimation

我有一个具有动态单元格高度的表格 View 。表格上方是带按钮的菜单。当我点击菜单按钮时,数据被加载到表中。加载数据时,我希望在单元格中有一个动画来改变单元格的高度。我想知道如何做到这一点?

enter image description here

感谢您的帮助。

最佳答案

swift 4

在您的模型中创建一个 bool 变量,用于检查您的单元格是否展开。 如果您想将单元格扩展到与标签高度一样长,您应该将标签约束连接到各个方向的 contentView,并在 Storyboard中将行数设置为 0。

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            details[indexPath.row].cellIsOpen = !details[indexPath.row].cellIsOpen
            detailTableView.reloadData()
            detailTableView.beginUpdates()
            detailTableView.endUpdates()
            detailViewHeightConstraint.constant = CGFloat(detailTableView.contentSize.height) // the height of whole tableView
            UIView.animate(withDuration: 0.3) {
                self.view.layoutIfNeeded()
            }
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
            if details[indexPath.row].cellIsOpen {
                return UITableViewAutomaticDimension // or any number you wish
            } else {
                return 60 // default closed cell height
            }
    }
}

您也可以将这两行放在您的 viewDidLoad() 函数中:

detailTableView.estimatedRowHeight = 60
detailTableView.rowHeight = UITableViewAutomaticDimension

关于swift - 具有调整单元格动画大小的动态单元格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48253073/

相关文章:

ios - 创建类似于 Facebook 提要页面的应用

ios - 我 swift 收到 "run before self"错误

ios - swift 3.0,火力地堡 : How to get last added record

Swift 4 WebkitView URL 更改未完成其工作

ios - 我可以从 Swift 中的 SecKeyRef 对象获取模数或指数吗?

ios - 内存 (Ram) 溢出 Swift

ios - 查看 Swift 字符串是否包含表情符号

swift - 如何使用 Swift 知道在 tableView 中点击了哪个单元格

ios - 在 3.5 和 4 英寸外形尺寸之间使用自动布局调整 View 大小

swift3 - 圆圈内的文本 UILabel Swift 3