Swift:UITableViewCell"跳跃"扩展时,部件不在视野范围内

时间:2015-11-19 10:19:19

标签: ios swift uitableview

我有一个带自定义单元格的UITableView。轻敲时可以扩展细胞。 我用代理人heightForRowAtIndexPath

计算身高

reloadRowsAtIndexPaths([indexPath], withRowAnimation: .None)附带的动画看起来非常不错,但如果较大的扩展单元格的一部分不在屏幕之外,则不起作用。然后它只是一种流行音乐(它看起来像一个跳跃),没有好看"滑动" - 动画(对不起,我不知道正确的动画短语),就像当细胞完全可见时屏幕。

我已经尝试了reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Fade),即使扩展的单元格在屏幕边框之外,但是我的单元格的上半部分刚刚变得更亮而且看起来并不那么好很花哨..

所以任何人都遇到麻烦#34;动画" 。也没有? ^^"

我的选择功能:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

  if let cell = tableView.cellForRowAtIndexPath(indexPath) as? ProviderNewTableViewCell {

            if expandedCells.contains(indexPath) {
                expandedCells.removeObject(indexPath)
            }
            else {
                expandedCells.append(indexPath)
            }

            //This prevents the last cell glitching into the decreasing cell above

            CATransaction.begin()
            CATransaction.setCompletionBlock({ () -> Void in
            tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .None)
            })
            CATransaction.commit()
  }
}

我的cell-for-row-func(重要部分;))

 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    var cell = tableView.dequeueReusableCellWithIdentifier("ProviderNewCell", forIndexPath: indexPath) as! ProviderNewTableViewCell
     if expandedCells.contains(indexPath) {
        indexPathDetailViewDict[indexPath] = ProviderCellBuilder.sharedInstance.buildDetailView(cell, prov: current)
     }
}

0 个答案:

没有答案