我有一个简单的应用程序,它使用NSTableView显示项目列表。列表中通常有大约15-25个项目,表格有10列,除了其中一个是文本(另一个是图标)。在几列上有简单的数据转换器。所以没什么好事;你希望它运行得很好。
就目前而言,它是;该应用程序响应迅速,一切都立即吸引。滚动,更改列大小,调整窗口大小;无论你做什么,重绘都会跟上鼠标指针。
今晚,我想我会尝试使用Core Animation(我之前从未使用过)为应用添加一点视觉风格,但我发现如果任何在NSTableView上方在层次结构中设置'想要核心动画层',然后NSTableView重绘进入地狱。滚动通常很好,但是调整列或窗口的大小会使它获得像纹理撕裂这样的效果,其中一些行具有新的大小,而一些行具有旧的大小,并且一切都可怕地闪烁。看起来很糟糕。基本上,如果渲染单个行或列需要很长时间,它看起来就像您期望的那样。
我已经把它通过Shark,当然,看起来它花了大部分时间在文本中绘制文本;我不明白的是,为什么在涉及核心动画层时需要更长的时间而不是在没有的情况下 - 并且明显更长时间。
有没有人有任何想法?是否有任何核心动画初始化或配置我错过了什么(我刚刚在IB中勾选了“想要核心动画层”框)?
干杯,
威尔