objective-c – CGContext文本绘图不会在iPhone 4上扩展

前端之家收集整理的这篇文章主要介绍了objective-c – CGContext文本绘图不会在iPhone 4上扩展前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个在iPhone 4上很好地扩展的应用程序.目前,它大部分的扩展完美,除了一个关键的部分:我在一个CALayer中绘制的文本,它的drawInContext:方法.这是我的代码
  1. - (void)drawInContext:(CGContextRef)context {
  2. UIGraphicsPushContext(context);
  3.  
  4. CGContextSetGrayFillColor(context,1.0f,1.0f);
  5. CGContextFillRect(context,self.bounds);
  6.  
  7. CGContextSetAllowsAntialiasing(context,true);
  8. CGContextSetShouldAntialias(context,true);
  9.  
  10. CGContextSetAllowsFontSmoothing(context,true);
  11. CGContextSetShouldSmoothFonts(context,true);
  12.  
  13. CGContextSetAllowsFontSubpixelQuantization(context,true);
  14. CGContextSetShouldSubpixelQuantizeFonts(context,true);
  15.  
  16. CGContextTranslateCTM(context,0.0f,self.frame.size.height);
  17. CGContextScaleCTM(context,-1.0f);
  18.  
  19. CGContextSetFillColorWithColor(context,[[UIColor blackColor] CGColor]);
  20. CGContextSelectFont(context,"CardKit",30.0f,kCGEncodingMacRoman);
  21. CGContextSetTextDrawingMode(context,kCGTextFill);
  22. CGContextShowText(context,"A",sizeof("A"));
  23.  
  24. UIGraphicsPopContext();
  25. }

这两个设备上的短暂文本都会产生清晰的文字,但不幸的是,它们在两者上都会产生模糊的文字.这是怎么出现的:

ugly text http://files.droplr.com.s3.amazonaws.com/files/16285043/1gBp61.Screen%20shot%202010-06-26%20at%2021:25:09.png

该图像是在iPhone 4上100%放大拍摄的.世界上有哪些?任何想法如何解决这个问题?

解决方法

您应该将图层的contentsScale设置为与屏幕的比例相同:
  1. layer.contentsScale = [UIScreen mainScreen].scale;

这将在所有iOS设备,Retina显示屏和非视网膜显示屏上正确扩展.你不应该将它硬编码到2.0(或者其他任何事情),除非你有很好的理由这样做.

猜你在找的C&C++相关文章