将CALayer绘制到CGContext中
|
我有以下代码:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CALayer *sublayer = [CALayer layer];
sublayer.backgroundColor = [UIColor orangeColor].CGColor;
sublayer.cornerRadius = 20.0;
sublayer.frame = CGRectMake(20, 0, 300, 20);
[sublayer setNeedsDisplay];
[sublayer drawInContext:context];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
但是,当我查看返回的newImage时,只有一个空图像。当我将drawInContext更改为renderInContext时,我得到了上面的子层,但似乎坐标系混乱了。
任何想法为什么上面的drawInContext不起作用?
没有找到相关结果
已邀请:
2 个回复
郸身
代替
。 我的理解是
应该被覆盖,而
是用来将层的内容呈现到上下文中的。 从文档中:
此方法的默认实现本身不会进行任何绘制。如果图层的委托实现
方法,则将调用该方法进行实际绘制。 子类可以重写此方法,并使用它来绘制图层的内容。绘制时,所有坐标应在逻辑坐标空间中的点中指定。
此方法直接从图层树进行渲染,而忽略添加到渲染树的所有动画。在图层的坐标空间中渲染。
弛保矮瘦敖