我正在尝试使用黑色背景显示CALayer。我已将AppDelegate作为代理附加到文件的所有者。控制台正确报告“从nib唤醒...”日志语句。然而,我只看到一个空白的灰色窗口(尺寸为335x390),中间没有画出黑框。我错过了什么概念?
提前感谢您的帮助,
查尔斯
#import "AppDelegate.h"
#import <QuartzCore/QuartzCore.h>
@implementation AppDelegate
-(void)awakeFromNib;
{
NSLog(@"awaking from nib...");
[[window contentView] setWantsLayer:YES];
layer = [CALayer layer];
[layer setBounds:CGRectMake(0.0,0.0,100.0,100.0)];
// center the animation layer
[layer setPosition:CGPointMake([[window contentView] frame].size.width/2, [[window contentView]frame].size.height/2)];
CGColorRef color = CGColorCreateGenericRGB(0., 0., 0., 1);
[layer setBackgroundColor:color];
CFRelease(color);
[layer setBorderWidth:5.0f];
[[[window contentView] layer] addSublayer:layer];
}
@end
答案 0 :(得分:1)
自定义图层的构造代码看起来正确,但RGBA为(1,1,1,1)的颜色为白色而非黑色。
我会验证您window
属性的插座是否正确连接(确保它是非零的),并且contentView是非零的。如果这些看起来不错,您可以尝试通过执行类似以下的操作为contentView提供自己的自定义图层:
[[window contentView] setLayer:[CALayer layer]];
[[window contentView] setWantsLayer:YES];