CALayer没有呈现其UIImage内容

时间:2013-03-27 17:34:05

标签: ios core-animation calayer

我正在将一个CALayer从OS X移植到iOS。

我创建了一个单独的视图应用程序,在包中复制了图像“body.png”,并定义了一个UIView子类:

我希望此方法在触摸屏幕时添加显示图像的图层,但不显示图像,只显示帧。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch * aTouch = [touches anyObject];
CGPoint loc = [aTouch locationInView:self];
CGPoint p=loc;
CALayer * body = [CALayer layer];
UIImage * img =[UIImage imageNamed:@"body.png"];
[body setBounds:CGRectMake(0, 0, 200, 200)];
[body setPosition:p];

if (img) {
    NSLog(@"body.png loaded");
        [body setBorderWidth:1];
        [body setBorderColor:[[UIColor blackColor] CGColor]];
        [body setContents:(id)img];
    }
    else {
        [body setBackgroundColor:[[UIColor blueColor] CGColor]];
    NSLog(@"body.png not loaded");
    }

    [[self layer] addSublayer:body];
}

我错过了什么?

1 个答案:

答案 0 :(得分:2)

更改行

[body setContents:(id)img];

[body setContents:(id)img.CGImage];