我正在尝试创建一个简单的应用程序,其中我有一个侧边栏,我正在尝试根据PSD文件中的RGB值获取背景颜色,要么使用背景图像作为模式....
我已经尝试过这两种方式,到目前为止还没有任何效果。任何帮助都将深表感谢。
-(void) drawRect:(NSRect)dirtyRect {
CALayer *viewLayer = [CALayer layer];
[viewLayer setBackgroundColor:CGColorCreateGenericRGB(85.0, 179.0, 217.0, 1.0)]; //RGB plus Alpha Channel
[self setWantsLayer:YES]; // view's backing store is using a Core Animation Layer
[self setLayer:viewLayer];
}
此代码应显示蓝色,结果几乎是白色......甚至不接近我想要的。
第二个代码,显示黑色背景,甚至我的png文件位于支持文件的文件夹中。
- (void)drawRect:(NSRect)dirtyRect {
NSGraphicsContext* theContext = [NSGraphicsContext currentContext];
[theContext saveGraphicsState];
[[NSGraphicsContext currentContext] setPatternPhase:NSMakePoint(0,[self frame].size.height)];
[self.customBackgroundColour set];
NSRectFill([self bounds]);
[theContext restoreGraphicsState];
}
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.customBackgroundColour = [NSColor colorWithPatternImage:
[NSImage imageNamed:@"buttonBg.png"]];
}
return self;
}
再一次,任何帮助都将深受赞赏。
答案 0 :(得分:4)
如果我没记错的话,CGColorCreateGenericRGB需要0.0-1.0的范围,并解释为什么它是白色的。这应该解决白色问题。
[viewLayer setBackgroundColor:CGColorCreateGenericRGB(85.0/255.0, 179.0/255.0, 217.0/255.0, 1.0)]; //RGB plus Alpha Channel
希望这有帮助。