objective-c – CGContext文本绘图不会在iPhone 4上扩展
发布时间:2020-12-16 06:02:36 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个在iPhone 4上很好地扩展的应用程序.目前,它大部分的扩展完美,除了一个关键的部分:我在一个CALayer中绘制的文本,它的drawInContext:方法.这是我的代码: - (void)drawInContext:(CGContextRef)context { UIGraphicsPushContext(context);
我正在尝试创建一个在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(或者其他任何事情),除非你有很好的理由这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |