1

透明な画像を表示するために、チェッカーボードの背景を IKImageView に追加したいと考えています。メッセージsetOverlay:forTypeを使用して、チェックボード イメージを含む CALayer を IKImageView に設定しようとしています。

CFURLRef imageURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(),(CFStringRef)@"bgImage.png", NULL, NULL);
CGImageSourceRef imageSource = CGImageSourceCreateWithURL(imageURL,NULL);
CFRelease(imageURL);
CGImageRef image = CGImageSourceCreateImageAtIndex(imageSource, 0,NULL);
CFRelease(imageSource);
CALayer *bgLayer = [[CALayer alloc] init ];
[bgLayer setContents:image ];
[ imageView setOverlay:bgLayer forType:IKOverlayTypeBackground ];

しかし、うまくいきません。コンソールにこのメッセージが表示されます

could not add '<CALayer: 0x101d039a0>' linkedTo 'kIKRootLayerType'

何が間違っているか、または回避策を知っている人はいますか?

ありがとう

4

1 に答える 1

2

ビューが平面図にアタッチされていないため、エラー メッセージが表示されます。

最後に、チェッカーボードの背景を IKImageview の NSScrollview コンテナーに追加しました。このようにして、背景レイヤーのサイズが自動的に変更されます。

CALayer *layer=[[SquareBackgroundLayer alloc] init];
[[ scrollView contentView] setLayer:layer];
[ layer release ];

これが誰にとっても役立つことを願っています。

于 2011-06-28T17:39:29.867 に答える