Я рисую в пользовательском представлении NSGradient
, например:
- (void)drawRect: (NSRect)dirtyRect
{
NSGradient* g = [[NSGradient alloc] initWithStartingColor: _color endingColor: [NSColor clearColor]];
[g drawInRect: [self bounds] angle: 90];
}
Если _color
- нормальный цвет, например [NSColor blueColor]
, все в порядке. Проблема в том, что _color
исходит из изображения шаблона (которое в данном случае в основном серое с некоторыми причудливыми пикселями на нем), и когда это происходит, программа продолжает регистрировать эту ошибку:
*** - [NSGradient initWithColors: atLocations: colorSpace:]: цвет NSPatternColorSpace CGImageSource = 0x400367d60 "
)> не может быть преобразовано в цветовое пространство. Общее цветовое пространство RGB
_color = [NSColor colorWithPatternImage: [NSImage imageNamed: @"mainBG.png"]]
Изображение полностью непрозрачное и представляет собой файл png.
Есть идеи? возможно я должен изменить тип файла? Я не знаю ...
EDIT:
Если я определю _color
следующим образом:
_color = [[NSColor colorWithPatternImage: [NSImage imageNamed: @"mainBG.tiff"]] colorUsingColorSpace: [NSColorSpace genericRGBColorSpace]]
тогда градиент не отображается. Ничего такого. Как будто у меня не было метода drawRect:
. Есть идеи?