2014-10-24 6 views
0

я создал градиент, как это:NSGradient создан с initWithColorsAndLocations: не рисовать

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

Но когда я рисую его в изображение с помощью drawInRect:angle:, получить простое белое изображение вместо градиента. Что не так?

ответ

0

С -initWithColorsAndLocations: является вариационной функцией, компилятор не знает, какие типы должны быть аргументы (за пределами первого аргумента). Вызов требует, чтобы «местоположения» были CGFloat, но когда передано 1 или 0, оно передается как int, поэтому оно интерпретируется как очень маленькое значение с плавающей запятой.

Решение состоит в том, чтобы передать (CGFloat)0.0 и (CGFloat)1.0 для местоположений вместо 0 и 1.

 Смежные вопросы

  • Нет связанных вопросов^_^