1

我有一个 NSCollectionView,其中包含三列 NSCollectionViewItems。在每个 NSCollectionViewItem 原型视图中,我都有一个 NSImageView。据我所知,这是一个相当标准的设置。我认为问题源于我使用弹出框来呈现集合视图,但老实说我不确定。基本上,我遇到的问题是,当我单击上述 NSCollectionViewItems 之一以将其标记为“已选择”时,它每隔一段时间就会闪烁/闪烁。这不是一个完全的交易破坏者,但它足以让我发布这个问题。

来自 HTML/CSS/JS 游戏,我开始考虑在使用 Web 技术构建东西时防止闪烁的所有方法。我的第一个想法是让 NSCollectionView(和子视图)的某些部分得到支持。我认为通过图层进行绘图或仅将集合视图设置为图层支持周期,它会渲染得更好,有点像 CSS 中的 GPU 增强动画(例如,没有子像素抗锯齿,启用 z 深度等.)。

因此,我将 NSCollectionView 子类化并[self setWantsLayer:YES]
-(id)initWithCoder:aDecoder方法中添加了一个。我是对的!它完全消除了闪烁。此外,滚动变得更加流畅。但是,在使闪烁消失的过程中,其他一切都开始混乱。弹出框需要大约 10 秒的时间来加载(与最初的 ~500 毫秒相比),项目会做奇怪的重叠事情,等等。

我对你们所有人的问题是:我该怎么办?如果有人可以帮助兄弟,我将不胜感激。

4

0 回答 0