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

前端之家收集整理的这篇文章主要介绍了objective-c – CGContext文本绘图不会在iPhone 4上扩展前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个在iPhone 4上很好地扩展的应用程序.目前,它大部分的扩展完美,除了一个关键的部分:我在一个CALayer中绘制的文本,它的drawInContext:方法.这是我的代码
- (void)drawInContext:(CGContextRef)context {
    UIGraphicsPushContext(context);

    CGContextSetGrayFillColor(context,1.0f,1.0f);
    CGContextFillRect(context,self.bounds);

    CGContextSetAllowsAntialiasing(context,true);
    CGContextSetShouldAntialias(context,true);

    CGContextSetAllowsFontSmoothing(context,true);
    CGContextSetShouldSmoothFonts(context,true);

    CGContextSetAllowsFontSubpixelQuantization(context,true);
    CGContextSetShouldSubpixelQuantizeFonts(context,true);

    CGContextTranslateCTM(context,0.0f,self.frame.size.height);
    CGContextScaleCTM(context,-1.0f);

    CGContextSetFillColorWithColor(context,[[UIColor blackColor] CGColor]);
    CGContextSelectFont(context,"CardKit",30.0f,kCGEncodingMacRoman);
    CGContextSetTextDrawingMode(context,kCGTextFill);
    CGContextShowText(context,"A",sizeof("A"));

    UIGraphicsPopContext();
}

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

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设置为与屏幕的比例相同:
layer.contentsScale = [UIScreen mainScreen].scale;

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

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