Swift:在 UITableView 中动画扩展行?

Posted

技术标签:

【中文标题】Swift:在 UITableView 中动画扩展行?【英文标题】:Swift: Animate expanding rows in a UITableView? 【发布时间】:2016-07-24 11:33:29 【问题描述】:

我目前有一个 UITableView,其中一行返回 0.0,然后在用户点击“显示更多”按钮时展开。发生这种情况时,上面的行会根据容器的高度返回一个特定的值,这会立即发生。我想做的是在扩展/减少的同时创建某种动画。

这是我目前的代码:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat 

    if indexPath.row == 2 && self.numberOfElements >= 2 
        if detailsVisible == false 
            self.showMoreLabel.text = "Show more (\(self.numberOfElements - 1))"
            return 0.0
        
        else 
            self.showMoreLabel.text = "Show less"
            return embedKonteringHeight
        
    

如果显示可扩展内容,var detailsVisible返回布尔值。

有没有一种简单的动画方法?我在想像一个简单的计数器增加/减少,它由 heightForRowAtIndexPath 在间隔内返回。

【问题讨论】:

【参考方案1】:

好的,经过一番研究,我发现了一种非常有效的方法。我会在这里发布,以防有​​人想知道答案。

didSelectRowAtIndexPath中,我只需要替换

tableView.reloadData()

tableView.beginUpdates()
tableView.endUpdates()

【讨论】:

以上是关于Swift:在 UITableView 中动画扩展行?的主要内容,如果未能解决你的问题,请参考以下文章

按下按钮时 UITableView 标题视图的动画显示(swift)

Swift4滚动UITableview后,动画UITableview框架是错误的

滑动删除 UITableView 单元格动画在 swift 2 中不起作用

如何在 Swift 中使用 UITableView 仅使用单元格(不是部分/标题)进行扩展?

如何在 uilabel 中使用多行并根据 Swift 中的标签高度自动扩展 uitableview 行高?

(Swift)如何通过重新加载 UITableView 根据 UITextfield 输入(动画)显示/隐藏单元格?