私は次の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" )> は色空間に変換できません Generic RGB 色空間
_color = [NSColor colorWithPatternImage: [NSImage imageNamed: @"mainBG.png"]]
画像は完全に不透明で、png ファイルです。何か案は?おそらくファイルタイプを変更する必要がありますか?知らない...
編集:
私_color
がこのように定義すると:
_color = [[NSColor colorWithPatternImage: [NSImage imageNamed: @"mainBG.tiff"]] colorUsingColorSpace: [NSColorSpace genericRGBColorSpace]]
グラデーションは表示されません。何もない。まるで私がそのdrawRect:
方法を持っていなかったかのように。何か案は?