我有一个基于视图的NSOutlineView,其中的行包含alpha值小于1的子视图。
当插入或删除新行时(当用户展开或折叠行时),所有这些子视图都会闪烁,因为它们似乎暂时重新绘制,其alpha值为1。
有谁知道如何阻止这种现象?
答案 0 :(得分:0)
我一直在看这个问题四个小时,而且一旦我在这里发布问题就会经常发生,我会为自己找出答案。
设置这样的半透明层解决了这个问题:
- (void)setup {
// This stops the strange flashing effect when collapsing/expanding rows
self.wantsLayer = YES;
[self.layer setShouldRasterize:YES];
}
- (instancetype)init
{
self = [super init];
if (self) {
[self setup];
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
[self setup];
}
return self;
}