0

IKBrowserView の背景を設定すると、ビューのサイズに応じて背景のサイズが変更されます: 並べて表示された画像として設定する方法はありますか?

NSImage*    backgroundImage = [NSImage imageNamed:@"wood-bg2.jpg"];
CALayer*    aLayer = [CALayer layer];
//aLayer.contents = backgroundImage;

CIColor *ci = [[CIColor alloc] initWithColor:[NSColor colorWithPatternImage:backgroundImage]];
CGColorSpaceRef cs = [ci colorSpace];
const CGFloat *comps = [ci components];
CGColorRef cgColor = CGColorCreate(cs, comps);

aLayer.backgroundColor = cgColor;
[itemThumbnailImageBrowserView setBackgroundLayer:aLayer];

コメントアウトされたコードと現在のコードの両方を試しましたが、どれも機能しません。ありがとう

4

1 に答える 1

4

の方法がありNSColorます:

+ (NSColor *)colorWithPatternImage:(NSImage *)image

したがって、次のようなことができます。

NSImage*    backgroundImage = [NSImage imageNamed:@"wood-bg2.jpg"];
CALayer*    aLayer = [CALayer layer];
aLayer.backgroundColor = [[NSColor colorWithPatternImage:backgroundImage] CGColor]; // - (CGColor) CGColor; is only available in OS X 10.8 and later
[itemThumbnailImageBrowserView setBackgroundLayer:aLayer];

OS X 10.8 以前のアップデート

に変換NSColorCGColorます (テストされていません):

CIColor *ci = [[CIColor alloc] initWithColor:[NSColor colorWithPatternImage:backgroundImage]];
CGColorSpaceRef cs = [ci colorSpace];
const CGFloat *comps = [ci components];
CGColorRef cgColor = CGColorCreate(cs, comps);
于 2013-02-12T12:35:19.367 に答える