动画自我调整大小的NSTableView行高

问题描述 投票:2回答:1

我有一个使用自行调整表格视图单元格的项目。我想在细胞高度发生变化时制作动画。 NSTableView的noteHeightOfRows(withIndexesChanged:)将为基于视图的单元格执行此操作,但仅限于在委托的tableView(_, heightOfRow:)方法中明确提供高度时。使用自动布局计算单元格高度时,将忽略此值。

我可以将单元格视图本身设置为动画,但其包含的行视图会跳转到由约束决定的最终大小。还尝试在行视图上使用高度约束并为其设置动画,但也被忽略了。有人开发了解决这个问题的Mac应用吗?

macos cocoa autolayout nstableview
1个回答
2
投票

我创建了一个示例项目并将其放在Github上,该动画可以激活表格的行高。它不使用委托tableView(_, heightOfRow:)函数。看看吧。

必要的步骤:

  • 在表视图上设置行高以使用autolayout。
  • 环绕动画,调用beginUpdate()endUpdate()on表视图。
  • 更改NSTableCellView中控件的属性,并在调用noteHeightOfRows(withIndexesChanged:)时调用表中的NSAnimationContext.runAnimationGroup

但是,如果你只看一下我放在Github上的代码就更容易了。

© www.soinside.com 2019 - 2024. All rights reserved.