是否可以将NSGradient转换为NSColor?
- (void) viewWillDraw {
NSGradient *grad = [[NSGradient alloc] initWithStartingColor:[NSColor lightGrayColor] endingColor:[NSColor darkGrayColor]];
[super setBackgroundColor:*gradient*;
}这是我的方法,我想把NSGradient作为一个NSColor来传递,显然我不能,有没有办法把它转换成一个?
发布于 2013-04-22 07:57:13
在10.8上,您可以按以下顺序创建:
这样,您就可以创建一个看起来像任何东西的颜色,包括渐变。
尽管如此,如果您试图使渐变适应背景的大小(通过使用传递给块的rect ),并且背景是滚动视图中的文本视图,则这可能无法在窗口调整大小。(当我试了一段时间后,这个模式没有重新绘制这个块;它只是平铺的,至少在一个维度上看起来很奇怪。)如果您的梯度或窗口的大小是固定的,那么您就不会有这个问题。
发布于 2013-04-22 06:07:04
NSGradient不能转换到NSColor.
NSGradient类支持绘制渐变填充颜色,在Quartz中也称为阴影。这个类为绘制矩形和NSBezierPath对象的径向或线性(轴向)梯度提供了方便的方法。
由于您希望将viewBackground设置为效果(梯度效应),您需要这样做:
[grad drawInRect:<the rect of your view> angle:270]; //angle is upto your requirement,https://stackoverflow.com/questions/16139065
复制相似问题