为什么添加核心动画会减慢我的NSTableView的绘制速度?

时间:2010-03-27 23:53:53

标签: objective-c macos core-animation nstableview

我有一个简单的应用程序,它使用NSTableView显示项目列表。列表中通常有大约15-25个项目,表格有10列,除了其中一个是文本(另一个是图标)。在几列上有简单的数据转换器。所以没什么好事;你希望它运行得很好。

就目前而言,它是;该应用程序响应迅速,一切都立即吸引。滚动,更改列大小,调整窗口大小;无论你做什么,重绘都会跟上鼠标指针。

今晚,我想我会尝试使用Core Animation(我之前从未使用过)为应用添加一点视觉风格,但我发现如果任何在NSTableView上方在层次结构中设置'想要核心动画层',然后NSTableView重绘进入地狱。滚动通常很好,但是调整列或窗口的大小会使它获得像纹理撕裂这样的效果,其中一些行具有新的大小,而一些行具有旧的大小,并且一切都可怕地闪烁。看起来很糟糕。基本上,如果渲染单个行或列需要很长时间,它看起来就像您期望的那样。

我已经把它通过Shark,当然,看起来它花了大部分时间在文本中绘制文本;我不明白的是,为什么在涉及核心动画层时需要更长的时间而不是在没有的情况下 - 并且明显更长时间。

有没有人有任何想法?是否有任何核心动画初始化或配置我错过了什么(我刚刚在IB中勾选了“想要核心动画层”框)?

干杯,

威尔

0 个答案:

没有答案