NSScrollView滚动条绘制在所有视图之上

时间:2013-04-19 21:40:18

标签: objective-c macos cocoa

我有两个重叠的观点。

  • NSTableView(歌曲列表),我称之为表格视图
  • 图层支持NSView(对于底部的播放控件),我将其称为播放控件视图

我之前使用图层支持的视图来渲染表视图,这导致滚动条在播放控件视图后面渲染,太棒了!但是当我用150多行数据加载表视图时,应用程序在我滚动时速度变慢了。

我将setWantsLayer:更改为NO,现在桌面视图更加快速,非常棒!但现在滚动条似乎呈现在播放控件视图的顶部。

不可

enter image description here

为:

enter image description here

这里有什么想法吗? (如果你不知道,我是一个核心动画新秀)

2 个答案:

答案 0 :(得分:0)

为什么不调整整个scrollview的大小并将播放控件视图放在列表下方?在你的场景中,播放控件视图似乎是scrollview的子视图。这有必要吗?

答案 1 :(得分:0)

调整整个scrollVIew的大小可能是一个解决方案,但您也可以设置scrollIndicatorInsets

yourTableView.scrollIndicatorInsets   = NSEdgeInsetsMake(0, 0, bottomValue, 0); 

这里的bottomValue类似于50 -150,根据视图的高度,您可能需要对此进行测试,但这样做会有所帮助。

修改:我刚看到您正在使用OSX,我的解决方案适用于iOS,我希望NSEdgeInsetsMake适用于与UIEdgeInsetsMake相似的Max OSX { {1}}。