自动布局约束的动画未在NSTableCellView内部发生

时间:2018-07-13 19:55:55

标签: swift nstableview nstablecellview nsanimationcontext

我正在尝试获取自动布局约束,以在NSTableCellView内部使用动画进行更新。约束可以很好地更新,但动画不会发生这种情况。

以下代码在tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int)内部执行:

NSAnimationContext.runAnimationGroup({ (context) in
  context.allowsImplicitAnimation = true
  context.duration = 0.3
  cell.progressWidthConstraint.constant = CGFloat(progress)
  cell.layoutSubtreeIfNeeded()
})

cell是我的NSTableCellViewprogressWidthConstraint是单元格内NSView上的宽度约束。

要让动画在NSTableCellView中工作,我需要做些特别的事情吗?

1 个答案:

答案 0 :(得分:1)

你能尝试

NSAnimationContext.runAnimationGroup({ (context) in
  context.allowsImplicitAnimation = true
  cell.progressWidthConstraint.animator().constant = CGFloat(progress)
  context.duration = 0.3
  cell.layoutSubtreeIfNeeded()
})