Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何修复选择NSCollectionViewItem时出现的闪烁?_Objective C_Core Animation_Flicker_Nscollectionview_Nspopover - Fatal编程技术网

Objective c 如何修复选择NSCollectionViewItem时出现的闪烁?

Objective c 如何修复选择NSCollectionViewItem时出现的闪烁?,objective-c,core-animation,flicker,nscollectionview,nspopover,Objective C,Core Animation,Flicker,Nscollectionview,Nspopover,我有一个NSCollectionView,其中包含三列NSCollectionViewItems。在每个NSCollectionViewItem原型视图中,我都有一个NSImageView。据我所知,这是一个相当标准的设置。我认为这个问题源于我使用popover来显示collection视图,但老实说,我不确定。基本上,我遇到的问题是,当我单击前面提到的NSCollectionViewItems之一将其标记为“已选择”时,它每隔一段时间就会闪烁/闪烁一次。这不是一个彻底的交易破坏者,但它的烦人足

我有一个NSCollectionView,其中包含三列NSCollectionViewItems。在每个NSCollectionViewItem原型视图中,我都有一个NSImageView。据我所知,这是一个相当标准的设置。我认为这个问题源于我使用popover来显示collection视图,但老实说,我不确定。基本上,我遇到的问题是,当我单击前面提到的NSCollectionViewItems之一将其标记为“已选择”时,它每隔一段时间就会闪烁/闪烁一次。这不是一个彻底的交易破坏者,但它的烦人足以让我张贴这个问题

从HTML/CSS/JS游戏开始,我开始思考在使用web技术构建内容时防止闪烁的所有方法。我的第一个想法是将NSCollectionView(和子视图)层的某些部分作为备份。我认为,通过层绘制,或者只是将集合视图设置为层备份周期,它会呈现更好的效果,有点像CSS中的GPU增强动画(例如,没有亚像素抗锯齿,启用z深度等)


因此,我将NSCollectionView子类化,并在
-(id)initWithCoder:aDecoder
方法。我是对的!它完全消除了闪烁。而且,滚动变得更加平滑。然而,在使闪烁消失的过程中,其他一切都开始混乱起来。popover大约需要10秒才能加载(最初是500毫秒),物品会有奇怪的重叠,等等


我的问题是:我该怎么做?如果有人能帮助一个兄弟,我会非常感激。

这一位运气好吗?面对相同的problem@Sunkas:嗯,是和否。我被授予这个问题的分数,因为没有人留下任何建议或评论。然而,我最近发现了问题所在,所以我很高兴你提醒了我这个问题。给我几分钟,我会更详细地解释问题是什么,以及我是如何着手解决的。简而言之,之所以会产生延迟,是因为我将每个集合视图项的图像URL绑定连接到了一个大得离谱的图像的URL,而不是一个缩略图。我将在稍后发布更多信息。
[self-setWantsLayer:YES]
为我解决了闪烁问题。只是用了错误的init方法。