【问题标题】:NSGradient created with initWithColorsAndLocations: does not draw使用 initWithColorsAndLocations 创建的 NSGradient:不绘制
【发布时间】:2014-10-24 19:32:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: cocoa core-graphics nsimage


    【解决方案1】:

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

    解决方案是为位置传递(CGFloat)0.0(CGFloat)1.0,而不是01

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-07
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      相关资源
      最近更新 更多