使用initWithColorsAndLocations创建的NSGradient:不绘制

时间:2014-10-24 19:32:50

标签: cocoa core-graphics nsimage

我创建了一个这样的渐变:

NSGradient *g = [[NSGradient alloc] initWithColorsAndLocations:
                 [NSColor colorWithWhite:1 alpha:1], 0,
                 [NSColor colorWithWhite:0 alpha:0], 1, nil];

但是当我使用drawInRect:angle:将其绘制成图像时,我得到一个纯白色图像而不是渐变。怎么了?

1 个答案:

答案 0 :(得分:0)

由于-initWithColorsAndLocations:是一个可变函数,编译器不知道参数需要的类型(超出第一个参数)。被调用者要求“位置”为CGFloat值,但是当传递10时,它将作为int传递,因此它被解释为一个非常小的浮点值

解决方案是为(CGFloat)0.0(CGFloat)1.0而不是01传递{{1}}和{{1}}。