UIView层renderInContext未绘制到图像上下文

时间:2013-09-08 06:33:20

标签: iphone ios objective-c uiview calayer

我正在尝试使用renderInContext将视图层绘制到CGGraphicsImageContext,但是视图层不会显示在生成的UIImage上。

UIGraphicsBeginImageContext(scaledImage.size);
[scaledImage drawInRect:CGRectMake(0, 0, scaledImage.size.width, scaledImage.size.height)];


[view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *croppedImage = [UIGraphicsGetImageFromCurrentImageContext() croppedImage:CGRectMake(0, 44, 320, scaledImage.size.height - (60 + 44))];
UIGraphicsEndImageContext();

我对视图的drawRect方法如下:

-(void)drawRect:(CGRect)rect
{
    CALayer *background = [[CALayer alloc] init];
    background.backgroundColor = [UIColor blackColor].CGColor;
    background.opacity = 0.4;
    background.frame = self.bounds;

    [self.layer addSublayer:background];

    CATextLayer *textLayer = [[CATextLayer alloc] init];
    textLayer.string = _poseName;
    textLayer.fontSize = 19;
    textLayer.foregroundColor = [UIColor whiteColor].CGColor;
    textLayer.alignmentMode = kCAAlignmentCenter;
    textLayer.frame = self.bounds;

    CGSize textSize = [_poseName sizeWithFont:[UIFont fontWithName:@"Helvetica" size:19]
                        constrainedToSize:textLayer.bounds.size
                            lineBreakMode:NSLineBreakByWordWrapping];

    textLayer.position = CGPointMake(160, self.bounds.size.height - textSize.height/2);

    [self.layer addSublayer:textLayer];
}

当应用程序运行时,视图的图层正确显示,但视图不会像我期望的那样呈现给图形上下文。提前感谢您的帮助!

0 个答案:

没有答案