任何想法为什么屏幕保护程序只使用一个普通的ScreenSaverView
子类和一个CAEmitterLayer
子图层在主屏幕上渲染得很好并且不稳定(好像每个2.帧渲染那里......)二级屏幕..?
这是我的初始化代码:
- (id)initWithFrame:(NSRect)frame isPreview:(BOOL)isPreview
{
self = [super initWithFrame:frame isPreview:isPreview];
if (self)
{
CAEmitterLayer* emitterLayer = [MyEmitterFactory emitterLayer:self];
[self setWantsLayer:YES];
[self.layer addSublayer:emitterLayer];
[self setAnimationTimeInterval:1/2.0];
}
return self;
}
此子类中的其他所有内容都是默认的(由Xcode模板提供)。
有趣的是,backingStoreType
听起来像是使用CoreAnimation在ScreenSaverView
子类中进行调整的一个很好的候选者,唉所有其他模式除了默认的模式之外不会按照文档使用.. < / p>
(由于动画由Core Animation提供动力,我在setAnimationTimeInterval
放入的内容并不重要 - 或完全取消调用,如实验所示)
答案 0 :(得分:0)
要创建图层托管视图,必须在调用setWantsLayer:方法之前调用setLayer:并提供图层对象;这些方法调用的顺序至关重要。
此外:它是哪个操作系统版本?两个显示器镜像时是否也会出现波动(反之亦然)?