具有自定义高度的 NSTableView 部分横幅列

Posted

技术标签:

【中文标题】具有自定义高度的 NSTableView 部分横幅列【英文标题】:NSTableView section banner column with custom height 【发布时间】:2015-08-12 22:37:18 【问题描述】:

我正在尝试使用 NSTableView 创建以下布局:

侧面每个部分都有一个大横幅,右侧是常规文本内容行。

左侧的图像是问题所在。滚动时它应该表现得像一个浮动部分(留在部分标题下方)。 NSTableView 的视图部分似乎不可能,因为一行的每一列都需要具有相同的高度。

我已经尝试了很多东西,但我需要一些正确的方向。

我尝试了什么:

将图像视图作为浮动视图添加到 NSScrollView 中?这似乎是一个不错的方法,但它不会在滚动时停留在顶部,并且表格内的(重新)定位是......棘手的。这里有什么提示吗? 将视图添加到节标题中并以某种方式禁用剪辑(使它们大于节)?无法做到这一点。 每行都有一个包含 NSStackViews 的表来托管自己的表 - 这确实有效,但是:每个表的独立选择不是我想要的。

【问题讨论】:

【参考方案1】:

好的,我终于找到了解决办法。

视图被添加到包含 NSTableView 的 NSScrollView 的浮动视图容器中。我使用行视图的边界并将其转换为浮动视图容器的坐标。

我还修改了选择图,使其看起来不错,并重新计算了动画上的坐标。

【讨论】:

以上是关于具有自定义高度的 NSTableView 部分横幅列的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 如何在没有第三方框架的情况下在 Swift 中创建自定义动画横幅

基于视图的 NSTableView 中的自定义背景

nstableview 拖放与自定义单元格视图

如何在 macOS 10.12+ 上自定义 NSTableView 标头?

打印一个 NSTableView

根据表中的行数调整 NSTableView 或 NSScrollView 的大小