2011-06-20 105 views
1

我想为IKImageView添加棋盘背景以查看透明图像。 我想设置的CALayer与棋盘图像与消息IKImageView setOverlay:forType将背景添加到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' 

有谁知道什么是错的或任何workarround?

谢谢

回答

1

错误消息是因为视图没有附加到顶视图。

最后,我添加了棋盘背景,IKImageview的NSScrollview容器, 这样的背景层自动调整大小

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

我希望这是一个任何人的帮助。