van*_*nce 17 iphone core-animation core-graphics calayer ios
试着理解为什么我用CGContextShowTextAtPoint获得低质量的绘图?见附图:

字母"W"是在CALayer上使用CGContextShowTextAtPoint绘制的,看起来非常像素化.它旁边的按钮是一个标准按钮,按预期看起来很高.我想让文字绘图成为高分辨率.

Bra*_*son 36
默认情况下,您的CALayer不会以Retina显示屏的更高分辨率渲染其Quartz内容.您可以使用以下代码启用此功能:
if ([layer respondsToSelector:@selector(setContentsScale:)])
{
layer.contentsScale = [[UIScreen mainScreen] scale];
}
Run Code Online (Sandbox Code Playgroud)
这不仅会影响文本渲染,还会影响CALayers中的所有Quartz绘图,因此您需要使用自定义Quartz内容对所有图层执行此操作.
使用CGContextScaleCTM会为您提供任何结果吗?使用图形上下文时,如下所示:
CGFloat scale = [[UIScreen mainScreen] scale];
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextScaleCTM(context, scale, scale);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6223 次 |
| 最近记录: |